2012-09-03 14 views
6

Soy nuevo en el iPhone,cambio RootViewController al mando de navegación

Quiero cambiar mi Rootviewcontroller a mi nueva clase y llegar a mando de navegación.

Aquí es mi fragmento de código,

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


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

    [self.window makeKeyAndVisible]; 


    return YES; 
} 

estoy recibiendo SIGABRT dice 'adding a root view controller <NewClass: 0x6a8dd50> as a child of view controller:

Respuesta

12

Siempre u desea establecer:

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]; 

EDITAR: utilizar directamente AppDelegateinstance para establecer rootViewController para UIWindow como he mostrado anteriormente.

+0

mismo problema m que se produce incluso después de escribir esto ... – Krunal

+0

verifique la respuesta editada –

+0

Gracias por la respuesta guardada mis últimas 4 horas de trabajo –

2

En lugar de:

[self.window addSubview:navigationController.view]; 

hacer navigationController la rootViewController de window:

self.window.rootViewController = navigationController; 

Además, ¿es detailViewController de tipo UINavigationController? No puede establecer UINavigationController como raíz en otro objeto UINavigationController.

+0

mismo problema ocurre incluso después de escribir esto. – Krunal

1

Apenas añada esta línea,

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

antes de la inicialización de 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

avíseme si eso funciona – channi

0

Cambiar el RootViewController a NavigationController ..

UINavigationController *navigationController=[[UINavigationController alloc] initWithRootViewController:self.detailViewController]; 
Cuestiones relacionadas