10

Je sais qu'il ya trois façons de modifier l'affichage dans iOSQuelle est la différence entre addChildViewController et 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 nécessite le contrôleur de navigation, ce que je comprends. Cependant, quand utiliser addChildViewController et presentModalViewController ??

Répondre

10

Ce sont quatre implémentations totalement différentes

  • addChildViewController est utilisé dans iOS5 pour faire le confinement viewController, cela vous permettra de créer facilement votre propre NavigationCotrollers ou TabControllers sa seule disponible dans iOS5

  • addSubview est le niveau le plus bas des trois, cela va juste ajouter une vue à une autre vue, comme un enfant

  • presentModalViewController est utilisé pour présenter une viewController modalement sur l'écran, en remplaçant donc l'ancien

  • pushViewController utilisé dans UINavigationController pour pousser une nouvelle ViewController aux viewcontrollers pile,

+0

Très clair! Merci! – Ian

3

1) a été introduit dans iOS 5 dans le cadre du changement de paradigme d'Apple pour permettre la hiérarchie des contrôleurs de vue, il met juste un contrôleur de vue devant celui en cours. Vous devez gérer le flux des contrôleurs.

2) Est identique à un, sauf qu'il ne peut être effectué que pour un seul contrôleur de vue à la fois. En fait, cette méthode a été remplacée par [self presentViewController:animated:completion:]

3) Ajoute le contrôleur de vue à une liste afin que vous puissiez revenir à la précédente après avoir appuyé sur 'retour'. iOS va gérer le flux des contrôleurs pour vous.

+0

Merci beaucoup! Clair! – Ian

Questions connexes