2013-04-05 14 views
7

mam 2 Widok Kontrolery z kontrolerem nawigacyjnym. Kiedy Użyj [self.navigationController popViewControllerAnimated:YES]; w drugim - pierwsza otwiera ale metody w viewDidLoad nie dzwonił. Jakie są metody wywoływane w pierwszym sterowniku w tej sytuacji?Jaka metoda jest wywoływana po kranu Wstecz w iOS

+0

Widok jest już załadowany, nie rozładować, dopóki nie pojawił się wyłączyć. Nie używaj ARC, jeśli jesteś nowy, tylko moje zalecenie. –

+0

Patrz również: http://stackoverflow.com/questions/1557290/how-to-trap-the-back-button-event – Senseful

Odpowiedz

23

Kontroler nawigacyjny wysyła viewWillAppear: do kontrolera widoku przed oddaniem swój pogląd na ekranie, a po viewDidAppear:.

Wewnątrz viewWillAppear: i viewDidAppear: kontroler widoku może sprawdzić self.isMovingToParentViewController. Jeśli isMovingToParentViewController jest YES, kontroler widoku jest dodawany do kontrolera nawigacyjnego w pierwszej kolejności (prawdopodobnie dlatego, że jest kontrolerem widoku administratora kontrolera nawigacyjnego lub dlatego, że jest on naciskany). Jeśli isMovingToParentViewController jest NO, kontroler widoku jest już na stosie kontrolera nawigacyjnego, a inny kontroler widoku jest otwierany, aby go odsłonić.

Czytaj “Handling View-Related Notifications” in the UIViewController class reference.

+2

Po trzech latach pracy z iOS nadal nie wiedziałem o tym ... – Nailer

1

W metodzie przypadek viewWillAppear zostanie wywołana.

-(void)viewWillAppear:(BOOL)animated 
{ 

} 
+0

Thank u! Teraz widzę, jak to zrobić! – ShurupuS

+0

Nie zapomnij wywołać '[super viewWillAppear: animated];'! :) – yujean

Powiązane problemy