繁体   English   中英

在加载视图时获取NULL IBOutlets有什么可能性.. IOS

[英]What are the possibilities of getting NULL IBOutlets while loading a view.. IOS

我一直在研究IOS应用程序。 在我有单个项目之前,所有源代码都是在该设置中正确加载了应用程序,现在我将其拆分为多个项目。 之后我现在面临一个问题...在ViewDidLoad中,IBOutlet的按钮都是零值,视图也加载黑色。 我无法猜出是什么问题。 任何可能导致这种情况的想法......

我加载了我的观点......

 main =[[main_page_controller alloc] init];

    if (main != NULL) 
        [root.navigationController pushViewController:main animated:YES];

我不确定我需要在这里发布哪部分代码,以使问题更容易理解......请分享您的建议..

编辑:我运行了我的旧项目,然后尝试使用我的新设置应用程序成功启动。 我从设备中删除了应用程序,并仅使用新设置加载,问题再次显示出来。 那么旧的设置是什么? 我在新的...中错过了什么?

首先检查xib(nib)文件中的所有连接,如果已连接,则断开它们,清理项目(cmd + k) ,然后再次连接连接。

看看这张图片是否有联系

在此输入图像描述

请参阅文档

要使用nib初始化视图控制器对象,可以使用initWithNibName:bundle:方法指定视图控制器使用的nib文件。 然后,当视图控制器需要加载其视图时,它会使用存储在nib文件中的信息自动创建和配置视图。

初始化视图控制器,并且您正在为视图使用.xib文件时,需要调用initWithNibName:bundle: . 这意味着它将使用xib文件在loadView创建视图。 目前,您只是使用init ,这将创建一个空白的UIViewController对象。

所以在这种情况下,你的代码就是(假设主包中的.xib被称为“MainViewControllerView.xib”):

main =[[main_page_controller alloc] initWithNibName:@"MainViewControllerView" bundle:nil];
if (main) {
    [root.navigationController pushViewController:main animated:YES];
}

还要检查你的.xib文件,看看是否所有的IBOutlet都连接到了你想要的东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM