1. 程式人生 > >IOS OC Navigation 導航條動態隱藏

IOS OC Navigation 導航條動態隱藏

根據公司需要  最近在研究 IOS 開發 。

小菜鳥一個。

不會gif 只能單張圖發 見諒

效果是這樣的 

第一個頁面


第二個頁面


第三個頁面


第四個 TableController 頁面


點選裡面的按鈕 返回到 Navigation 導航條中 第一個頁面


根據這個效果可以看到:點選button 跳轉頁面,導航條 在 1.2.3頁面上都正常顯示,進入到TableBarController 裡面的時候根據需要需要把導航條隱藏掉,並在item1中有一個按鈕點選這個按鈕要讓當前頁面跳回到導航欄裡面預設的頁面(有點繞口),跳回預設頁面後導航欄還要顯示。

由於自學IOS沒幾天都是網上搜教程什麼的,大神有更好的辦法可以指點指點小弟

根據網上查詢相關方法:

在TableBarConroller 中 新增代理

@interfaceTableBarViewController ()<UINavigationControllerDelegate>

@end

在viewDidLoad新增程式碼:

self.navigationController.delegate = self;

重寫方法

// 將要顯示控制器

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(

UIViewController *)viewController animated:(BOOL)animated {

// 判斷要顯示的控制器是否是自己

BOOL isShowHomePage = [viewController isKindOfClass:[selfclass]];

    [self.navigationControllersetNavigationBarHidden:isShowHomePage animated:YES];

}

在Item中 再寫一遍:

// 將要顯示控制器

- (void)navigationController:(UINavigationController

 *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {

// 判斷要顯示的控制器是否是自己

BOOL isShowHomePage = [viewController isKindOfClass:[selfclass]];

    [self.navigationControllersetNavigationBarHidden:isShowHomePage animated:YES];

}

呼叫的時候程式碼:

[selfnavigationController:self.navigationControllerwillShowViewController:nilanimated:NO]; //設定動態顯示導航條 

     [self.parentViewController.navigationControllerpopToRootViewControllerAnimated:YES]; //返回到導航條預設第一個頁面

注意:

標紅的這個引數 博主測試填任何一個Viewcontroller 都能達到效果  目前不知道這個引數的作用  只好用nil。

到這裡已經完全實現了前面說的效果了 

至於第二個導航條是紅色 其他是綠色的,這是因為拖了一個NavigationBar 控制元件設定的顏色 .但是有一個問題就是,如果在程式碼中把導航條隱藏的話,其他頁面都是隱藏的只有設定了NavigationBar控制元件的頁面不回改變.這個問題還沒想到如何解決的辦法。希望大神們看到的話多指點指點。

效果圖就是最前面給出的  執行的效果就是那個.

END