1. 程式人生 > >iOS navigationcontroller中的back按鈕的隱藏及右滑pop操作整理

iOS navigationcontroller中的back按鈕的隱藏及右滑pop操作整理

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按鈕。