我想標記我的UINavigationController
是否具有動畫效果(push/pop)。完成轉換時io7導航檢查
我有一個布爾變量(_isAnimating),和下面的代碼似乎工作:
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
_isAnimating = YES;
}
- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
_isAnimating = NO;
}
但它在iOS7與滑動手勢工作不正確。假設我的導航是:root-> view A - > view B。我目前對B.
在開始輕掃(去從B到A後),該funcion 「
navigationController:willShowViewController:animated:(BOOL)animated
」 被調用,那麼_isAnimating = YES
。正常情況下,刷卡完成(回到A),調用函數「
navigationController:didShowViewController:animated:(BOOL)animated
」,然後調用_isAnimating = NO
。這種情況是可以的,但是:如果用戶可能只需滑動一半(向A轉換一半),則不想滑動到上一個視圖(視圖A),他再次轉到當前視圖(再次入住B)。然後函數「
navigationController:didShowViewController:animated:(BOOL)animated
」不被調用,我的變量有不正確的值(_isAnimating=YES)
。
我沒有機會在這個異常情況下更新我的變量。有沒有辦法更新導航狀態?謝謝!
您是否嘗試過使用UIViewController的isBeingPresented屬性? – henryeverett
Chào!你試過了嗎?viewWillAppear:'? –
@henryeverett 和Thanh-NhonNGUYEN isBeingPresented和viewWillAppear:在A或B中。我的代碼不是A或B,它是另一個類(它是UINavigationController的委託,它的角色是導航管理器)。除此之外,我的代碼可能有許多視圖,有A,B,C,D,.....不僅A和B –