在我将XCode更新到4.5版本和iOS 6SDK之前,这个应用程序运行得非常好。
应用程序会崩溃,并显示以下输出:
*** Terminating app due to uncaught exception 'UIViewControllerHierarchyInconsistency', reason: 'A view can only be associated with at most one view controller at a time! View <UIView: 0xad397b0; frame = (0 20; 320 460); autoresize = W+H; layer = <CALayer: 0xad39810>> is associated with <UIViewController: 0xad39940>. Clear this association before associating this view with <RootViewController: 0x9e62f00>.'
*** First throw call stack:
(0xda012 0x1ea7e7e 0xd9deb 0xbc9309 0xc605ac 0xc5ca90 0x1661e8e 0x16619b7 0x168c428 0xd980cc 0x1ebb663 0xd545a 0xd96bcf 0xc5be37 0xc5c418 0xc5c648 0xc5c882 0xc5cb2a 0xc73ef5 0xc73fdb 0xc74286 0xc74381 0xc74eab 0xc74fc9 0xc75055 0xd7a3ab 0xbcb92d 0x1ebb6b0 0x405fc0 0x3fa33c 0x3fa150 0x3780bc 0x379227 0x41bb50 0xb9152f 0xa2afe 0xa2a3d 0x807c2 0x7ff44 0x7fe1b 0x2bef7e3 0x2bef668 0xb7b65c 0x2a6b 0x29d1)
libc++abi.dylib: terminate called throwing an exception应用程序将添加到窗口登录视图中,然后添加到选项卡栏视图中,代码如下:
/* LOGIN VIEW ADD */
[window addSubview:[loginVC view]];
[window makeKeyAndVisible];
/* LOGIN VIEW REMOVE AND ADD TAB BAR CONTROLLER */
[loginVC.view removeFromSuperview];
[window addSubview:[tabBarController view]];
[window makeKeyAndVisible];应用程序在删除和添加后崩溃。
苹果在iOS 6上做了什么?为什么会崩溃?
发布于 2012-09-29 00:42:42
您不应该再将视图作为子视图添加到主窗口中。现在,正确的做法是将您的rootController设置为您希望的UIViewController,即根well。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UIViewController *myViewController = [[UIStoryboard storyboardWithName:@"RandomStoryboard" bundle:nil] instantiateInitialViewController];
window.rootViewController = myViewController;
return YES;
}不过,大多数应用程序都可以通过简单的方式做到这一点。如果您的项目中有一个主storyboard (在项目文件中设置),它将自动从该Storyboard实例化初始视图控制器。
https://stackoverflow.com/questions/12622131
复制相似问题