2011-08-04 20 views
0

我有一個名爲VC1的視圖控制器的uinavigation控制器,現在我有一個VC1的按鈕,當我點擊他時,我去查看控制器VC2,這是我如何將VC2帶到屏幕上:viewDidDisapper不會調用

VC2 *tmp = [[VC2 alloc]init]; 
[[self navigationController] pushViewController:tmp animated:YES]; 
[tmp release]; 

現在當我點擊VC2上導航的後退按鈕返回到VC1其工作,但我把VC2 viewDidDisappear和viewWillDisappear方法,當我點擊後退按鈕時,這個功能將不會被調用,任何有什麼想法?

+0

你怎麼知道這些方法不被調用? – dasdom

回答

-1

如果您想調用viewWillDisappear/viewDidDisappear方法,您的視圖控制器必須先手動執行此操作,然後將其自身從導航堆棧彈出。看看this ,你可能會知道如何去做。

+0

我認爲這是不正確的。我有一個導航控制器和一個viewController從nav堆棧彈出,viewWillDisappear每次都被調用。 – dasdom

0

可以調用視圖[..]從UINavigationControllerDelegate回調,但以確保方法是由超級實施UINavigationController稱爲最簡單的方法手工方法就是給他們打電話手動一次當UINavigationController被分配。

見我的答案在這裏:iPhone viewWillAppear not firing

你叫navController = [[UINavigationController alloc] init..後立即所以,請確保調用

[navController viewWillAppear:NO]; 
[navController viewDidAppear:NO]; 
[navController viewWillDisappear:NO]; 
[navController viewDidDisappear:NO]; 

這應確保事件正確轉發在未來每個視圖控制器。