0

我想做這個簡單的事情:創建一個uinavigationcontroller,但不會在啓動時顯示。假設我想要一個帶有「Go」按鈕的歡迎屏幕,該按鈕可導向uinavigationcontroller。在我看到的所有例子中,導航控制器看起來都是馬上出現的。我應該怎麼做呢?創建一個啓動時不顯示的導航控制器

謝謝!

回答

1

顯示導航控制器視圖的機制發生在應用委託中的-(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; 
} 
+0

我想過,但有很多與uinavigationcontroller有關的其他配置,恐怕我做這些時可能會破壞所有東西,但我會試一試。謝謝! – TommyG

1

在視圖控制器,顯示去隱藏導航欄和其他顯示導航欄

[self.navigationController setNavigationBarHidden:YES]; 

希望這將有助於

+0

謝謝,但我的意思是完全隱藏整個導航窗口。 – TommyG

2

如果「顯示」你的意思是使用導航控制器,無明顯的足跡,這很容易。簡單地做這根視圖控制器:

// Root 
- (void)viewWillAppear:(BOOL)animated 
{ 
    [self.navigationController setNavigationBarHidden:YES animated:animated]; 
} 

對於孩子視圖控制器,你需要做的,以便在他們出現顯示導航欄類似的東西。

// Child 
- (void)viewWillAppear:(BOOL)animated 
{ 
    [self.navigationController setNavigationBarHidden:NO animated:animated]; 
} 

這對於主菜單,你不想顯示主功能表視圖導航欄應用程序一個很常見的技術。

相關問題