应用程序窗口预计在应用程序启动结束时有一个根视图控制器 – 即使所有已知问题都已修复

我有这个问题,但是我在这个论坛或者networking上找不到的信息似乎都能够帮助我。

似乎有两个地方可能会出现这个错误:

  1. main.m – 我的function如下所示:
int main(int argc, char *argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } } 

UIApplicationMain的最后一个参数返回我的AppDelegate类的NSString值。 因此这工作正常。

2.AppDelegate.m – 设置根视图控制器的方式如下:

  [self.window addSubview:rootViewController]; 

但是,在我的应用程序已经更新为:

 self.window.rootViewController = self.viewController; [self.window makeKeyAndVisible]; 

所以目前互联网上的信息都没有工作。 我的同事可以很好地在电脑上工作 – 这是一个给我发送应用程序源代码的人,所以所有的设置和代码应该完全一样。

我正试图在模拟器中启动它。 它是针对iOS 5构build的,但我试图在iOS 6.0模拟器上运行它。

我有最新的XCode(4.5.1)。

这有什么理由吗? 我该如何纠正?

非常感谢

汤姆

我遇到了完全相同的事情,试图添加一个单视图的应用程序的UITableView。 相反,创build一个默认的主 – 细节应用程序项目(文件 – >新 – >目标 – > …),并看到didDFinishLaunchingWithOptions的AppDelegate的实现:

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

您不需要直接将视图控制器设置为窗口的rootViewController,而是需要为initWithRootViewController创build一个使用视图控制器初始化的导航控制器,然后将该导航控制器设置为窗口的rootViewController。 (注意,你还必须在属性中松开那个导航控制器,这样它才不会被破坏)。

只要改变这一点:

 [window addSubview:tabBarController.view]; 

对此:

 [window setRootViewController:tabBarController]; 

或者不pipe在addSubView中:

尝试在你的项目菜单中定义默认的视图控制器,

select你的项目=> Summary => Main Interface =>键入你的主视图控制器

每当我开始新的项目,我面临与你同样的错误,每次解决这个问题,希望这对你有所帮助。

请执行以下操作,在您的代码中添加一个Exception BreakPoint,以查看是否可以找出问题所在。 如果您不知道如何操作,请使用本教程。 另外,编译时是否有警告? 即使让你编译,有时候警告也能揭示你的应用崩溃的原因。