我正在使用UINavigationController
但是当我推送一个视图控制器时,只需简单地通过使类的对象加载类而不是其中的组件。
这是我的AppDelegate.m
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
ViewController *vc = [sb instantiateInitialViewController];
UINavigationController *nav = [[UINavigationController alloc] init];
self.window.rootViewController = nav;
nav.viewControllers = @[vc];
和我的第一个UIViewController
if操作按钮代码是
NextView *next = [[NextView alloc] init];
[self.navigationController pushViewController:next animated:YES ];
它到达下一个UIViewController
但没有加载内部组件,如 - 按钮,文本字段等。
如果我尝试这个代码,它会给我运行时错误
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
NextView *next = [sb instantiateViewControllerWithIdentifier:@"two"];
[self.navigationController pushViewController:next animated:YES ];
答案 0 :(得分:0)
确保NextView
继承UIViewController
并且您已将标识符two
指定给该视图控制器,并且您已将标识检查器中的类NextView
设置为该视图控件。< / p>
希望这会有所帮助:)
答案 1 :(得分:0)
你无法在UIViewController的子类中加载alloc
init
的插座(按钮等)。您应该使用-initWithNibName:bundle:
方法使用xib文件初始化它。或者您可以使用storyboard实例化它。
// You can get current storyboard from the View Controller
UIStoryboard *sb = vc.storyboard;
NextView *next = [sb instantiateViewControllerWithIdentifier:@"two"];
[self.navigationController pushViewController:next animated:YES];