gpt4 book ai didi

objective-c - 应用程序窗口应该在应用程序启动警告结束时有一个 Root View Controller

转载 作者:技术小花猫 更新时间:2023-10-29 11:12:36 24 4
gpt4 key购买 nike

我已经被这个警告困扰了几个小时了。我环顾四周寻找答案,尝试了我找到的所有答案,但找不到解决方案。这是我的代码的摘要,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 中的所有连接也已正确连接。所以我现在不知所措。有什么我可能会遗漏的吗?提前致谢!

最佳答案

如果您有 MainWindow.xib,那么在 application:didFinishLaunchingWithOptions: 中设置窗口的 rootViewController 很奇怪。通常一个项目遵循三个模板之一:

  • 一些项目有一个MainWindow.xib。目标的“主界面”在目标的“摘要”选项卡(或其 Info.plist)中设置为“MainWindow”。此 xib 的文件所有者是 UIApplication。 xib 包含 AppDelegate 实例,连接到文件所有者的 delegate 导出。 xib 还包含一个 UIWindow,其 rootViewController 导出连接到一个 UIViewController(或子类,例如 UINavigationController ), 这也在 xib 中。当应用程序委托(delegate)收到 application:didFinishLaunchingWithOptions: 消息时,xib 已完全加载,因此窗口及其 Root View Controller 已经设置完毕。

  • 其他项目没有MainWindow.xib。目标的“主界面”是空的。相反,UIApplicationMain 函数创建了一个 AppDelegate 实例,将其设置为 UIApplication 的委托(delegate),并将其发送给 应用程序: didFinishLaunchingWithOptions: 消息。应用程序委托(delegate)通过创建 UIWindow、创建 View Controller (或多个)以及设置窗口的 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。我不打算详细描述它,因为它似乎与您的问题无关。

您所描述的问题听起来像是您使用了第一个模板的一半和第二个模板的一半。那行不通的。您需要决定采用哪种方法,然后全力以赴。

关于objective-c - 应用程序窗口应该在应用程序启动警告结束时有一个 Root View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11515818/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com