objective-c – 应用程序窗口预计在应用程序启动警告结束时具有根视图控制器

我已经被这个警告困扰了几个小时了.我已经看了周围的答案,尝试了所有我发现,找不到解决方案.这是我的代码的崩溃,认情况下生成Xcode.

这是在我的AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    self.window.rootViewController = self.navigationController;
    [self.window makeKeyAndVisible];
    return YES;
}

我在main.m(根据this answer)

int main(int argc,char *argv[])
{
    @autoreleasepool {
        int retVal = UIApplicationMain(argc,argv,nil,NsstringFromClass([AppDelegate class]));
        return retVal;
    }
}

我的MainWindow.xib中的所有连接都已正确连接.所以我现在在亏损.有什么可以丢的吗?提前致谢!

解决方法

在应用程序中设置窗口的rootViewController是奇怪的:didFinishLaunchingWithOptions:如果您有一个MainWindow.xib.通常一个项目遵循三个模板之一:

>一些项目有一个MainWindow.xib.目标的“主界面”在目标的“摘要”选项卡(或其Info.plist)中设置为“主窗口”.这个xib的文件的所有者是UIApplication. xib包含AppDelegate的一个实例,连接到文件的所有者代理插座. xib还包含一个UIWindow,它的rootViewController插座连接到一个UIViewController(或子类,如UINavigationController),它也在xib中.当应用程序委托接收到应用程序:didFinishLaunchingWithOptions:消息时,xib被完全加载,因此窗口及其根视图控制器已经建立.
>其他项目没有MainWindow.xib.目标的“主界面”为空.相反,UIApplicationMain函数创建一个AppDelegate的实例,将其设置为UIApplication的委托,并将其发送给应用程序:didFinishLaunchingWithOptions:message.应用程序委托通过创建一个UIWindow来处理该消息,创建一个视图控制器(或几个),并设置窗口的rootViewController属性.认版本如下所示:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];
    return YES;
}

>一些项目有一个MainStoryboard.storyboard.我不会详细描述这一点,因为它与你的问题似乎不相关.

您所描述的问题使您听起来像您使用的是第一个模板的一半,而第二个模板的一半.那不行.你需要决定你正在采取哪种方式,并且全面进入.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...