10

So che ci sono tre modi per cambiare la visualizzazione in iOSQual è la differenza tra addChildViewController e 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 richiede il controller di navigazione, che capisco. Tuttavia, quando utilizzare addChildViewController e presentModalViewController ??

risposta

10

Si tratta di quattro totalmente diverse implementazioni

  • addChildViewController viene utilizzato in iOS5 di fare viewController contenimento, questo vi permetterà di creare facilmente il proprio NavigationCotrollers o TabControllers suo disponibili solo in iOS5

  • addSubview è il livello più basso dei tre, questo sarà solo aggiungere una vista ad un'altra vista, da bambino

  • presentModalViewController è usato per presentare una viewController modally sullo schermo, quindi sovrascrivendo quello vecchio

  • pushViewController utilizzato in UINavigationController per spingere un nuovo ViewController ai viewcontrollers impilare,

+0

Molto chiaro! Grazie! – Ian

3

1) è stato introdotto in IOS 5 come parte del paradigma di Apple per consentire le gerarchie dei controller di visualizzazione, mette semplicemente un controller di visualizzazione di fronte a quello corrente. Devi gestire il flusso dei controller.

2) È uguale a uno, tranne che può essere eseguito solo per un controller di visualizzazione alla volta. In realtà, questo metodo è stato sostituito da [self presentViewController:animated:completion:]

3) Aggiunge il controller di visualizzazione a un elenco in modo da poter tornare a quello precedente dopo aver premuto "indietro". iOS gestirà il flusso di controller per te.

+0

Grazie mille! Chiaro! – Ian

Problemi correlati