Objective c Xcode 4.5黑屏或异常:';一个视图一次最多只能与一个视图控制器关联';

Objective c Xcode 4.5黑屏或异常:';一个视图一次最多只能与一个视图控制器关联';,objective-c,xcode,cocos2d-iphone,Objective C,Xcode,Cocos2d Iphone,我有一个现有的iPhone应用程序,在升级到Xcode 4.5之前在Xcode 4.0中运行良好。升级后,现在我在iPhone/iPad 4.3模拟器中运行时出现黑屏,在运行iPhone/iPad 6.0模拟器时出现以下异常 Terminating app due to uncaught exception 'UIViewControllerHierarchyInconsistency', reason: 'A view can only be associated with at most o

我有一个现有的iPhone应用程序,在升级到Xcode 4.5之前在Xcode 4.0中运行良好。升级后,现在我在iPhone/iPad 4.3模拟器中运行时出现黑屏,在运行iPhone/iPad 6.0模拟器时出现以下异常

Terminating app due to uncaught exception 'UIViewControllerHierarchyInconsistency', reason: 'A view can only be associated with at most one view controller at a time! View <CCGLView: 0x8c7f380; frame = (0 0; 320 480); layer = <CAEAGLLayer: 0x8c7f670>> is associated with <CCDirectorDisplayLink = 0x994c7f0 | Size: 320 x 480, view = <CCGLView: 0x8c7f380; frame = (0 0; 320 480); layer = <CAEAGLLayer: 0x8c7f670>>>. Clear this association before associating this view with <RootViewController: 0x8c7ef00>.'
如果这些行被注释掉,那么6.0模拟器也会显示一个黑屏,而不是常规的菜单屏幕

我在网上搜索了这方面的解决方案,并尝试了许多方法,但一直无法取得进展。我对iPhone编程相当陌生(虽然我对一般编程并不陌生),我真的很难做到这一点。非常感谢您的帮助。

首先,请删除

viewController = [[RootViewController alloc] initWithNibName:nil bundle:nil];
viewController.wantsFullScreenLayout = YES;
然后替换

[window setRootViewController:viewController];


那就够了

那很有效!非常感谢你。在被困了大约一周后,我现在可以继续前进了。
[window setRootViewController:viewController];
if( ! [director enableRetinaDisplay:YES] )
    CCLOG(@"Retina Display Not supported");

// Create a Navigation Controller with the Director
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:director];
navController.navigationBarHidden = YES;
NSString *reqSysVer = @"6.0";
NSString *currSysVer = [[UIDevice currentDevice] systemVersion];
if ([currSysVer compare:reqSysVer options:NSNumericSearch] != NSOrderedAscending)
{
    [window setRootViewController:navController];
} else
{
    [window addSubview: navController.view];
}