2012-09-03 33 views
6

我新的iPhone,变化RootViewController的到导航控制器

我想改变我的Rootviewcontroller我的新类,并使其导航控制器。

这里是我的代码片段,

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  


    UINavigationController *navigationController=[[UINavigationController alloc] initWithRootViewController:detailViewController]; 
    [self.window addSubview:navigationController.view]; 

    [self.window makeKeyAndVisible]; 


    return YES; 
} 

我得到SIGABRT说:'adding a root view controller <NewClass: 0x6a8dd50> as a child of view controller:

回答

12

每当ü要设置:

DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil]; 
UINavigationController *navigationController=[[UINavigationController alloc] initWithRootViewController:detailViewController]; 
self.window.rootViewController =nil; 
self.window.rootViewController = navigationController; 
[self.window makeKeyAndVisible]; 

编辑:直接使用AppDelegateinstance设置rootViewControllerUIWindow如我上面显示。

+0

同样存在问题米发生,即使在写这个.. – Krunal

+0

检查编辑答案 –

+0

谢谢你的答案保存我的最后4小时的工作 –

2

相反的:

[self.window addSubview:navigationController.view]; 

使navigationControllerrootViewControllerwindow的:

self.window.rootViewController = navigationController; 

另外,是detailViewController类型UINavigationController?您不能将UINavigationController作为根设置为另一个UINavigationController对象。

+0

同样的问题出现,即使写这个了。 – Krunal

1

只需添加这条线,

RootViewController *defaultViewController=[[RootViewController alloc]initWithNibName:@"NAME_OF_XIB" bundle:nil];

之前的UINavigationController的初始化,

RootViewController *defaultViewController=[[RootViewController alloc]initWithNibName:@"NAME_OF_XIB" bundle:nil]; 
UINavigationController *navigationController=[[UINavigationController alloc] initWithRootViewController:detailViewController]; 
[self.window addSubview:navigationController.view]; 

[self.window makeKeyAndVisible]; 
return YES; 
+0

让我知道,如果这样的作品 – channi

0

更改RootViewController的到NavigationController ..

UINavigationController *navigationController=[[UINavigationController alloc] initWithRootViewController:self.detailViewController]; 
相关问题