10

Sé que hay tres maneras de cambiar la vista en IOS¿Cuál es la diferencia entre addChildViewController y presentModelViewController

1.

[self addChildViewController:thirdViewController]; 
[contentView addSubview:thirdViewController.view]; 

2.

First * sVC = [[First alloc] initWithNibName:@"First" bundle:[NSBundle mainBundle]]; 
[self presentModalViewController:sVC animated:YES]; 

3.

MyViewController *sampleViewController = [[[MyViewController alloc]initWithXXX] autorelease];  
[self.navigationController pushViewController: sampleViewController animated:true]; 

pushViewController requiere el controlador de navegación, lo cual yo entiendo. Sin embargo, ¿cuándo usar addChildViewController y presentModalViewController?

Respuesta

10

Estos son cuatro implementaciones totalmente diferentes

  • addChildViewController se utiliza en IOS5 hacer viewController de contención, esto le permitirá crear fácilmente su propio NavigationCotrollers o TabControllers su único disponible en iOS5

  • addSubview es el nivel más bajo de los tres, esto solo agregará una vista a otra vista, como un niño

  • presentModalViewController se utiliza para presentar una viewController modalmente en la pantalla, por lo tanto, sobrescribir la antigua

  • pushViewController utilizado en UINavigationController para empujar una nueva ViewController a las viewcontrollers apilar,

+0

Muy claro! ¡Gracias! – Ian

3

1) se introdujo en iOS 5 como parte del cambio de paradigma de Apple para permitir ver las jerarquías del controlador, simplemente pone un controlador de vista frente al actual. Tienes que administrar el flujo de controladores.

2) Es lo mismo que uno, excepto que solo se puede hacer para un controlador de vista a la vez. En realidad, este método ha sido reemplazado por [self presentViewController:animated:completion:]

3) Agrega el controlador de vista a una lista para que pueda volver a la anterior después de presionar 'atrás'. iOS administrará el flujo de controladores por ti.

+0

¡Muchas gracias! ¡Claro! – Ian

Cuestiones relacionadas