2016-04-28 52 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

在我的知识中,不需要它你会采取这一点,它会带来复杂的工作 –

相关问题