我是iPhone新手,
我想将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:
答案 0 :(得分: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];
编辑:如上所示,直接使用AppDelegate
instance
为rootViewController
设置UIWindow
。
答案 1 :(得分:2)
而不是:
[self.window addSubview:navigationController.view];
使navigationController
成为rootViewController
window
:
self.window.rootViewController = navigationController;
此外,detailViewController
类型为UINavigationController
吗?您无法将UINavigationController
设置为另一个UINavigationController
对象的根目录。
答案 2 :(得分:1)
只需添加此行
即可 RootViewController *defaultViewController=[[RootViewController alloc]initWithNibName:@"NAME_OF_XIB" bundle:nil];
,
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;
答案 3 :(得分:0)
将RootViewController更改为NavigationController ..
UINavigationController *navigationController=[[UINavigationController alloc] initWithRootViewController:self.detailViewController];