方案在iPhone上:獲取UINavigationBar的委託,讓「回」,一個漂亮的動畫
用戶點擊後退按鈕時,UINavigationBar
委託方法(在UINavigationController
一個子類實現)返回YES
,就像這樣:現在
- (BOOL)navigationBar:(UINavigationBar *)navigationBar shouldPopItem:(UINavigationItem *)item
{
// Verify stuff...
return YES;
}
,根據docs,它是應用程序的職責,以保持導航欄和同步內容,並做到這一點的地方是在委託方法
- (void)navigationBar:(UINavigationBar *)navigationBar didPopItem:(UINavigationItem *)item
問題是,didPopItem
僅在導航欄的流行動畫序列完成後調用,因此如果我在那裏調用[self popViewControllerAnimated: NO]
,最終結果是導航欄首先滑回,然後是內容。
而這只是看起來不對。
如果我在代理shouldPop...
方法中調用導航控制器的pop...
,則會收到一條錯誤消息,表明我是重疊的動畫,並且最終狀態不乾淨。
所以我的問題是,是否有另一種方式讓UINavigationController更改內容,最好是與導航欄同步的動畫效果最好,但不會在導航欄和導航控制器之間造成混淆?
目標操作系統是iOS 4.2及更高版本。
我知道我可以在後退按鈕的位置創建另一個左按鈕,但是我發現使用委託更加清潔,而且我得到了一個「真正的」後退按鈕,這正是我想要的。
Ÿü希望之前的導航欄的彈出動畫序列調用didPopItem方法爲u曾在3 paragrah..Whatü瓦納做u能請writter它清除你的第三次低谷你認爲你的主要佇列 –
爲什麼你用一個單獨的導航欄和'UINavigationController'而不是使用它提供的? – Greg