10

wiem, że istnieją trzy sposoby, aby zmienić widok na iOSJaka jest różnica między addChildViewController i 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 wymaga kontrolera nawigacyjnego, który rozumiem. Jednak kiedy używać addChildViewController i presentModalViewController?

Odpowiedz

10

Są to cztery zupełnie różne implementacje

  • addChildViewController jest stosowane w iOS5 zrobić viewController pojemników, będzie to pozwalają łatwo tworzyć własne NavigationCotrollers lub TabControllers jego dostępne tylko w iOS5

  • addSubview to najniższy poziom z trzech, to po prostu doda widok do innego widoku, jako dziecko

  • presentModalViewController jest używany do przedstawienia viewController modalnego na ekranie, a zatem zastąpieniem starego

  • pushViewController stosowane w UINavigationController naciskać nowy ViewController do viewcontrollers stos,

+0

Bardzo jasne! Dzięki! – Ian

3

1) został wprowadzony w iOS 5 jako część zmiany paradygmatu Apple w celu umożliwienia hierarchii kontrolerów widoku, po prostu umieszcza kontroler widoku przed bieżącym. Musisz zarządzać przepływem kontrolerów.

2) Jest taki sam jak jeden, z tym że można to zrobić tylko dla jednego kontrolera widoku naraz. W rzeczywistości ta metoda została zastąpiona przez: [self presentViewController:animated:completion:]

3) Dodaje kontroler widoku do listy, dzięki czemu można wrócić do poprzedniego po naciśnięciu klawisza "wstecz". iOS zarządza przepływem kontrolerów.

+0

Wielkie dzięki! Jasny! – Ian

Powiązane problemy