5

動畫我不幸運,尋找這一點,所以在這裏我們去)popViewController/viewWillAppear中沒有的iOS 5

我有一個UIViewController使用自定義UINavigationBar其推動另一UIViewController作爲子視圖。

一切正常,除非我點擊子視圖上的返回按鈕。預覽(第一個)視圖正確顯示,但不是動畫。 UINavigationBar的動畫是正確的,只有視圖立即切換。

第一個UIViewController的功能- (void)viewWillAppear:(BOOL)animatedNO調用爲animated。這隻發生在我用iOS 5測試時,而不是用iOS 4.

有沒有人知道如何解決這個問題?

感謝您的幫助!漢納斯

更新1

我只是刪除所有的自定義代碼,只是使用普通UINavigationBar(所以沒有額外的設置),它仍然無法與iOS 5的工作這是我的代碼中使用第一視圖控制器推第二的ViewController:

[self.navigationController pushViewController:secondViewController animated:YES];

正如我已經提到的 - 當我點擊第一個視圖立即出現無動畫第二視圖導航欄中的後退按鈕。

任何幫助,將不勝感激!謝謝!

更新2

我覺得我越來越接近問題,但仍然沒有解決:

我只是增加了一個自定義的UINavigationController,我只是叫[super popViewControllerAnimated:animated]。這個get的被正確調用(動畫是YES),但第一個UIViewControllerviewWillAppear獲得NO作爲動畫的值...

回答

6

我今天有一個類似的問題,其中UIViewControllerviewWillAppear中獲得了否,除了使用標準UINavigationBarUINavigationController

原來,這是由於手動呼叫viewWillAppear:YES本應該不應該的地方。 This item暗示它也可能是由於在某處(例如,在某個地方調用錯誤的super方法)造成的。[super viewWillAppear:animated]而不是[super viewDidAppear:animated]內部的viewDidAppear)。

對於使用自定義UINavigationBar,我碰到這個鏈接今天,可以幫助你的情況下跑:http://sloshire1.posterous.com/simple-fix-for-viewwillappear-in-ios5

+2

哦,天啊,謝謝sooomuch!我正在與這個瘋了!我剛剛發現在我的自定義「UITabBarController」的'viewDidAppear'中有'[super viewWillAppear]'。再次感謝! – Hannes 2012-01-20 22:16:41

+0

@Hannes感謝它對我有用@Hannes是否使用了'Rumex CustomTabbar(RXCustom Tabbar)'我只隱藏了我的自定義UITabBarController的viewDidAppear中的[super viewWillAppear]。這是否會造成任何問題?這是什麼問題? – 2012-07-17 10:42:16

+0

@Hannes我正在打開'現在的模態viewcontroller'在那個時候我越來越同樣的問題。你有什麼主意嗎? – 2012-07-17 10:45:50

0

Apple實施了官方方式在iOS 5中創建自定義導航條。不幸的是,它們也打破了大部分在iOS 4中使用非官方方式。iOS 5不會再爲您調用drawRect。你需要有兩種方式來完成這個任務,一個用於iOS 5或更高版本,使用新的調用,另一個用於iOS 4和更早的版本,使用舊的調用。查看iOS 5自定義導航欄的文檔以獲取更多信息。

+0

嗨歐文,感謝對進入這個。我將UINavigationBar分類並將其鏈接到.xib文件中以獲得自定義標頭 - 它適用於iOS 4和5.儘管如此,我只是刪除了自定義的「UINavigationBar」,只是常規的標籤欄,效果仍然相同,視圖動畫在顯示子視圖時正確,但在單擊後退按鈕時立即切換。 – Hannes 2012-01-17 22:36:51

0

您是否嘗試刪除所有自定義代碼並使用本地導航欄?行爲是否保持不變?通過這種方式,您可以檢查自定義欄是否與轉換混淆。

+0

謝謝,我只是這樣做,但仍然第一個視圖出現沒有動畫...我更新了我的問題。 – Hannes 2012-01-20 09:13:05

相關問題