1. 程式人生 > >iOS介面跳轉過程中導航欄和tabBar的隱藏與顯示

iOS介面跳轉過程中導航欄和tabBar的隱藏與顯示

一、當A頁面要push到B頁面,需要將B頁面的導航欄隱藏時,我們只需要在A頁面中重寫以下兩個方法:

override func viewWillAppear(animated: Bool) {

    super.viewWillAppear(animated)
    self.navigationController?.setNavigationBarHidden(true, animated: true)
   }
  override func viewWillDisappear(animated: Bool) {
     super.viewWillDisappear(animated)
     self
.navigationController?.setNavigationBarHidden(false, animated: true) }

注意:self.navigationController?.navigationBarHidden = false這樣在隱藏了導航欄的控制器和沒有隱藏導航欄的控制器之間切換時可能會使導航欄出現閃動的問題。用以上呼叫設定其隱藏的方法,就可以解決這個問題。

二、當我們從A頁面push跳轉到B頁面需要隱藏tabBar時,在A頁面寫如下程式碼:

 self.hidesBottomBarWhenPushed=YES;
    BViewController *bvc=[[BViewController alloc]init];
    [self
.navigationController pushViewController:bvc animated:YES]; self.hidesBottomBarWhenPushed=NO; //最後一句話,可以保證在back回到A時,tabBar會恢復正常顯示