標籤:
當我們使用自訂button進行popViewController,並將系統NavigationBar隱藏時,
(self.navigationController.navigationBarHidden = YES;)
NavigationBar的系統內建的側滑手勢便不存在了。
當然我們可以在當期視圖上加滑動手勢,但是容易出現bug,特別是視圖中存在scrollview、tableview等視圖。
下面看一種比較巧妙的方法,將 自訂backBtn 與 系統側滑 組合到一起:
- (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; self.navigationController.navigationBar.alpha = 0; // self.navigationController.navigationBarHidden = YES;}- (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; self.navigationController.navigationBar.alpha = 1; // self.navigationController.navigationBarHidden = NO;}
可以看到,並沒有將NavigationBar隱藏掉,而是透明度調成0,透明度為0時NavigationBar將不佔據位置,
但側滑功能仍在。過程中發現,側滑一半時會顯現出系統NavigationBar的backBtn及標題,
於是,可以這兩項設為nil。注意:這些對NavigationBar的設定都是全域生效的,
要注意在視圖生命週期的不同階段做好相應處理。
總結,當我們想要不使用系統NavigationBar的視圖,而僅僅使用它的側滑手勢時,
要靈活利用視圖生命週期,對
self.navigationController.navigationBar.alpha = 0; self.navigationController.navigationBar.alpha = 1;
進行適時地切換,系統NavigationBar的backItem等成員也許適時隱藏。
iOS “自訂返回按鈕”與“系統側滑”的組合使用