我在尝试呈现新的 View Controller 时调用此方法。注释掉的行是我尝试过但没有成功的其他内容。
-(void)presentMailBoxViewController{
TPMailBoxViewController* mailBoxViewController=[[TPMailBoxViewController alloc]initWithNibName:@"TPMailBoxViewController" bundle:nil];
[self.navigationController pushViewController:mailBoxViewController animated:YES];
//[self.navigationController presentViewController:mailBoxViewController animated:YES completion:NULL];
//[self presentViewController:mailBoxViewController animated:YES completion:NULL];
}
我已将文件所有者设置为我相应的 View Controller 。
我什至将我的 xib 的 View 对象作为属性链接到我的 View Controller 中。
但是,当我打开 [self.navigationController pushViewController:mailBoxViewController animated:YES];
View Controller 的 View 属性为零。给了什么?
最佳答案
“UIViewController
”已经有一个“view
”属性,所以你不需要“myView
”。
打开你的 Storyboard或 XIB 文件,并确保你想要显示的“view
”在你的 Storyboard或 XIB 文件中连接到你的 TPMailBoxViewController 对象。
在您“initWithNibName
”之后, View Controller 对象存在但其“view
”属性可能为 nil,因为尚未加载 View 。
当您推送 View Controller 时,也就是当您的“TPMailBoxViewController
”将获得“viewWillLoad
”和“ viewWillAppear
"方法被调用,当加载 View 时,"view
"导出将从 nil
变为真实的东西。
关于ios - 为什么我的 initWithNibName 方法返回一个 nil View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27342937/