2016-04-28 39 views
0

我有一個iPhone應用程序(與故事板),其中我使用視圖控制器作爲initialviewcontroller.Then之後,我添加了一個視圖控制器場景並嵌入導航控制器。我希望導航控制器是當我試圖以編程方式訪問該視圖控制器並將另一個視圖控制器推送到它時,導航控制器不在那裏,我也得到該視圖控制器嵌入到該導航控制器上的場景無法訪問的警告。我試圖實現它這樣的訪問UInavigationcontroller嵌入式視圖控制器?

` 
    UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" 
                  bundle: nil]; 

    UINavigationController *controller =(UINavigationController *)[mainStoryboard instantiateViewControllerWithIdentifier:@"Newcontroller"]; 
    NSLog(@"%@",[controller topViewController]); 

    [appdelegate.window setRootViewController:controller]; 
` 

任何人都可以幫助我如何以編程方式訪問此導航控制器?

+1

採取一個自定義類的UINavigationController。 –

回答

1

你需要做的像

第1步

創建自定義類NavigationController,例如NavigationViewController(UINavigationController的子類)。

步驟2

在身份檢查該NavigationController指定的類名。

步驟3

設置故事板ID用於標識檢查的Xcode該類。

步驟4

最後訪問經由代碼的類,例如

UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" 
                 bundle: nil]; 

NavigationViewController *controller =(NavigationViewController *)[mainStoryboard instantiateViewControllerWithIdentifier:@"navigate"]; 
NSLog(@"%@",[controller topViewController]); 

[appdelegate.window setRootViewController:controller]; 

例如

enter image description here

+0

否則我們可以將它設置爲initialviewcontroller嗎? – hacker

+0

在我的知識中,不需要它你會採取這一點,它會帶來複雜的工作 –