应用程序窗口应在应用程序启动警告结束时具有根视图控制器

Rap*_*eta 9 objective-c uiviewcontroller ios ios5

我现在已经坚持了几个小时这个警告.我一直在寻找答案,尝试了我找到的所有答案,但找不到解决办法.这是我所拥有的代码的破败,Xcode默认生成.

这是我的AppDelegate

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

我在main.m上有这个(根据这个答案)

int main(int argc, char *argv[])
{
    @autoreleasepool {
        int retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
        return retVal;
    }
}
Run Code Online (Sandbox Code Playgroud)

我也正确连接了我的MainWindow.xib中的所有连接.所以我现在不知所措.我可能遗失的任何东西?提前致谢!

rob*_*off 19

如果你有一个窗口rootViewController,设置你的窗口是很奇怪application:didFinishLaunchingWithOptions:MainWindow.xib.通常,项目遵循以下三个模板之一:

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

  • 其他项目没有MainWindow.xib.目标的"主界面"为空.相反,该UIApplicationMain函数创建一个实例AppDelegate,将其设置为UIApplication代理,并将application:didFinishLaunchingWithOptions:消息发送给它.应用程序委托通过创建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;
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • 有些项目有MainStoryboard.storyboard.我不打算详细描述这一点,因为它似乎与您的问题无关.

你所描述的问题让你觉得你使用的是第一个模板的一半,第二个模板的一半.那不行.你需要决定你正在采取哪种方法,然后全押.


归档时间:

查看次数:

12047 次

最近记录:

12 年,4 月 前