iOS navigationcontroller中的back按鈕的隱藏及右滑pop操作整理
阿新 • • 發佈:2019-01-06
iOS7之後系統支援了pop手勢右滑自動呼叫back方法,這讓我們省了很多事,不用自定義手勢,不用自己寫方法,只需要寫幾行程式碼,輕鬆搞定,程式碼如下:
//設定滑動回退 __weak typeof(self) weakSelf = self; self.navigationController.interactivePopGestureRecognizer.delegate = weakSelf; //判斷是否為第一個view if (self.navigationController && [self.navigationController.viewControllers count] == 1) { self.navigationController.interactivePopGestureRecognizer.enabled = YES; }
so easy!
注意:當前頁面中的手勢衝突
手勢右滑pop弄好了,剩下的就是back按鈕的問題了,大部分應用都是自定義back按鈕,因為系統自帶的back按鈕功能單一,只能自定義image和title,不能重寫target和action。也顯得自己的應用比較個性化,但是在pop操作的時候,系統會自動顯示上層viewcontroller中的back按鈕,也就是上頁面的title,其實隱藏也很簡單,一行程式碼,但是隱藏的方法比較多,首先來看看back按鈕都有哪些方法可以獲取到:
self.navigationItem.backBarButtonItem self.navigationController.navigationItem.backBarButtonItem self.navigationController.navigationBar.backItem.backBarButtonItem
這三個對應隱藏的方法分別:
[self.navigationItem setHidesBackButton:YES];
[self.navigationController.navigationItem setHidesBackButton:YES];
[self.navigationController.navigationBar.backItem setHidesBackButton:YES];
這三個方法都可以隱藏back按鈕,但是第一種方法設定後,在二級頁面當手勢右滑一半的時候會顯示上層頁面的back按鈕,其他兩種方法都可以完美隱藏掉back按鈕。