ios - 为什么我的 initWithNibName 方法返回一个 nil View ?

标签 ios objective-c uinavigationcontroller xib presentviewcontroller

我在尝试呈现新的 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 。

enter image description here

我什至将我的 xib 的 View 对象作为属性链接到我的 View Controller 中。

enter image description here

但是,当我打开 [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/

相关文章:

c++ - 基于 SDL2 的游戏和 GADBannerView

ios - iOS浏览器iframe中pdf部分显示

ios - 如果我想每 x 秒执行一个方法 y 次,我应该使用 NSTimer 吗?

ios - Push Segue 触发一个 Modal Segue,导致没有导航栏的 VC

ios - 如何像 start_test_server_in_background( :timeout => 30)

objective-c - 如何强制 iPad 启动 wifi 连接?

iphone - iOS 4 卡住应用程序

ios - UIViewController 中的 UISearchBar 崩溃

ios - ViewController - (0,0) 处的主视图元素被导航栏遮挡

ios - 减少 GKScore 值