我遇到了这个问题,但是我在这个论坛或互联网上找不到的任何信息似乎都无法帮助我。
似乎有两个地方会出现此错误:
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
UIApplicationMain
中的最后一个参数会返回NSString
类的AppDelegate
值。因此工作正常。
2.AppDelegate.m - 有一个"更早的"设置根视图控制器的方法如下:
[self.window addSubview:rootViewController];
但是,在我的应用中,它已更新为:
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
因此,互联网上的当前信息都不起作用。更令人费解的是,我的同事可以让它在他的计算机上工作得非常好 - 他就是那个向我发送应用程序源代码的人,所以所有的设置和代码都应该完全相同。
我正在尝试在模拟器中启动它。它是针对iOS 5构建的,但我试图在iOS 6.0模拟器上运行它。
我有最新的XCode(4.5.1)。
有什么理由会发生这种情况吗?我该如何纠正它?
非常感谢
汤姆
答案 0 :(得分:17)
我试图将UITableView添加到单视图应用程序时遇到了同样的问题。相反,创建一个默认的Master-Detail Application项目(file-> new-> target-> ...)并查看AppDelegate的didFinishLaunchingWithOptions实现:
- (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创建一个导航控制器,然后将该导航控制器设置为窗口的rootViewController。 (请注意,您还必须将属性中的导航控制器松开,以免被破坏)。
答案 1 :(得分:6)
只需改变一下:
[window addSubview:tabBarController.view];
到此:
[window setRootViewController:tabBarController];
或者addSubView中的任何内容:
答案 2 :(得分:3)
尝试在项目菜单中定义默认视图控制器
选择你的项目=>摘要=>主界面=>输入主视图控制器
每当我开始新项目时,我都面临着和你一样的错误,每次都解决这个问题,希望这对你有所帮助。
答案 3 :(得分:0)
请至少在代码上添加Exception BreakPoint,看看是否可以找出问题所在。如果您不知道如何操作,请使用this教程。此外,编译时是否有任何警告?即使它让你编译,有时警告可以揭示你的应用程序崩溃的原因。