2011-02-10 24 views
8

¿Cómo agrego un UIViewController existente (que se presenta utilizando presentModalViewController) a un UINavigationController?Agregar UINavigationController a UIViewController existente

Cuando el usuario toca el botón, se debe presionar una nueva copia de mi vista de detalles. (En otras palabras, pushViewController muestra pushViewController, modalmente, en un UINavigationController).

¿La manera más fácil de habilitar esta funcionalidad?

+0

No está claro lo que está pidiendo. ¿Desea presentar un UINavigationController de forma modal? Eso "se siente" mal, pero no estoy seguro. – Bogatyr

+0

esa es la descripción simplificada ... presentando UINavigationController de forma modal ... (pero modificando el UIViewController existente) – marko

Respuesta

36

, ¿cómo crear su viewcontroller modal? Simplemente envuelva el controlador en un UINavigationController

Supongamos que su código modal es así:

MyExampleViewController *vc = [[[MyExampleViewController alloc] initWithNibName:@"MyExample" bundle:nil] autorelease]; 
[self presentModalViewController:vc animated:YES]; 

entonces el cambio en algo como esto:

MyExampleViewController *vc = [[[MyExampleViewController alloc] initWithNibName:@"MyExample" bundle:nil] autorelease]; 
UINavigationController *navController = [[[UINavigationController alloc] initWithRootViewController:vc] autorelease]; 
[self presentModalViewController:navController animated:YES]; 
+0

hay MyExampleViewController y MyDetailViewController en la propiedad viewControllers de navController. Pero la pantalla no está actualizada (MyDetailViewController no se muestra)? – marko

+0

cómo llamar a pushViewController en MyExampleViewController? – marko

+0

'[self.navigationController pushViewController: anotherVC animated: YES];' ?! –

0

Creo que necesita agregar un controlador de navegación en su delegado, después de eso puede empujar la vista. Para que pueda enviar la vista desde cualquier lugar de su aplicación.

en AppDelegate.h

UINavigationController *navig; 

en AppDelegate.M

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{  
    navig = [[UINavigationController alloc] initwithRootViewController:viewController.view]; 

    //[navig pushViewController:viewController animated:YES]; 
    [self.window addSubview:navig.view]; 
    [self.window makeKeyAndVisible]; 

    return YES; 
} 
+0

No puedo entender ni la pregunta ni veo la relevancia de esta respuesta :). – Bogatyr

+0

quieres empujar el controlador de vista nueva, entonces deberías tener un controlador de navegación entonces puedes pus – Splendid

+0

no está en el lanzamiento de la aplicación ... – marko

Cuestiones relacionadas