我有一个iPhone应用程序(带故事板),其中我使用视图控制器作为initialviewcontroller。然后我添加了一个视图控制器场景并嵌入了一个导航控制器。我希望导航控制器到当我试图以编程方式访问该视图控制器并将另一个视图控制器推送到它时导航控制器不在那里,我也得到了嵌入到该视图控制器的导航控制器上无法访问的场景的警告。我是试图像这样实现它
`
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main"
bundle: nil];
UINavigationController *controller =(UINavigationController *)[mainStoryboard instantiateViewControllerWithIdentifier:@"Newcontroller"];
NSLog(@"%@",[controller topViewController]);
[appdelegate.window setRootViewController:controller];
`
任何人都可以帮我了解如何以编程方式访问此导航控制器吗?
答案 0 :(得分:1)
你需要做的事情
<强>步骤1 强>
创建NavigationController的自定义类,例如NavigationViewController(UINavigationController的SubClass)。
<强>步骤-2 强>
在Identity Inspector中为该NavigationController分配类名。
<强>步骤-3 强>
在Identity Inspector Xcode中设置该类的Storyboard ID。
<强>步骤4 强>
最后通过代码访问课程,例如
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main"
bundle: nil];
NavigationViewController *controller =(NavigationViewController *)[mainStoryboard instantiateViewControllerWithIdentifier:@"navigate"];
NSLog(@"%@",[controller topViewController]);
[appdelegate.window setRootViewController:controller];
例如