我想做這個簡單的事情:創建一個uinavigationcontroller,但不會在啓動時顯示。假設我想要一個帶有「Go」按鈕的歡迎屏幕,該按鈕可導向uinavigationcontroller。在我看到的所有例子中,導航控制器看起來都是馬上出現的。我應該怎麼做呢?創建一個啓動時不顯示的導航控制器
謝謝!
我想做這個簡單的事情:創建一個uinavigationcontroller,但不會在啓動時顯示。假設我想要一個帶有「Go」按鈕的歡迎屏幕,該按鈕可導向uinavigationcontroller。在我看到的所有例子中,導航控制器看起來都是馬上出現的。我應該怎麼做呢?創建一個啓動時不顯示的導航控制器
謝謝!
顯示導航控制器視圖的機制發生在應用委託中的-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;
方法中。在那裏NC被添加爲窗口的rootViewController。
如果您想要顯示另一個,只需將您的自定義視圖控制器設置爲NC的位置,然後在按下按鈕時調用的操作方法中切換兩個視圖控制器(將第一個自定義視圖控制器替換爲NC) 。
假設myCustomController
定義UIButton
屬性叫touchButton
:
// in the app delegate
-(BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//self.window.rootViewController = self.navigationController;
[self.myCustomController.touchButton addTarget:self
action:@selector(switchVC)
forControlEvents:UIControlEventTouchUpInside];
self.window.rootViewController = self.myCustomController;
[self.window makeKeyAndVisible];
return YES;
}
現在,在您的應用程序委託編寫的操作方法:
-(void)switchVC {
self.window.rootViewController = self.navigationController;
}
在視圖控制器,顯示去隱藏導航欄和其他顯示導航欄
[self.navigationController setNavigationBarHidden:YES];
希望這將有助於
謝謝,但我的意思是完全隱藏整個導航窗口。 – TommyG
如果「顯示」你的意思是使用導航控制器,無明顯的足跡,這很容易。簡單地做這根視圖控制器:
// Root
- (void)viewWillAppear:(BOOL)animated
{
[self.navigationController setNavigationBarHidden:YES animated:animated];
}
對於孩子視圖控制器,你需要做的,以便在他們出現顯示導航欄類似的東西。
// Child
- (void)viewWillAppear:(BOOL)animated
{
[self.navigationController setNavigationBarHidden:NO animated:animated];
}
這對於主菜單,你不想顯示主功能表視圖導航欄應用程序一個很常見的技術。
我想過,但有很多與uinavigationcontroller有關的其他配置,恐怕我做這些時可能會破壞所有東西,但我會試一試。謝謝! – TommyG