我試圖調用[[self navigationController] popViewControllerAnimated:YES]
,但使動畫從右向左滑動,而不是從左向右滑動。任何簡單的方法來做到這一點?我想返回到前一個視圖。任何幫助表示讚賞。謝謝!UINavigationController:在相反方向彈出視圖控制器
5
A
回答
8
這是可能的,看看我用了一段時間後面的代碼,並嘗試使它爲自己工作。鬱可唯需要改變setAnimationTransition
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:0.75];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO];
[UIView commitAnimations];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDelay:0.375];
[self.navigationController popViewControllerAnimated:NO];
[UIView commitAnimations];
有幾種不同類型的默認動畫使用,蘋果網站說,這種動畫是可能的:
typedef enum {
UIViewAnimationTransitionNone,
UIViewAnimationTransitionFlipFromLeft,
UIViewAnimationTransitionFlipFromRight,
UIViewAnimationTransitionCurlUp,
UIViewAnimationTransitionCurlDown,
} UIViewAnimationTransition;
所以你的情況,你會想使用以下內容:
[UIView beginAnimations:nil context:nil];
[UIView setAnimationCurve: UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:0.75];
[self.navigationController popViewControllerAnimated:NO];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.navigationController.view cache:NO];
[UIView commitAnimations];
16
這是如何在相反方向彈出視圖控制器。它爲我工作100%
CATransition *transition = [CATransition animation];
transition.duration = 0.45;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault];
transition.type = kCATransitionFromRight;
[transition setType:kCATransitionPush];
transition.subtype = kCATransitionFromRight;
[self.navigationController.view.layer addAnimation:transition forKey:nil];
[self.navigationController popViewControllerAnimated:NO];
+0
這就是我正在尋找的!謝謝。 – iChirag
+2
您將類型設置了兩次? 'transition.type = kCATransitionPush'應該足夠了。 –
相關問題
- 1. pushviewcontroller或彈出到視圖控制器UINavigationController
- 2. 從UINavigationController中彈出視圖控制器的問題
- 3. 僅在橫向模式下彈出視圖控制器時方向錯誤
- 4. 在UINavigationController中推視圖控制器
- 5. 需要幫助解僱模態呈現視圖控制器,並從彈出的UINavigationController視圖控制器
- 6. 從UINavigationController彈出視圖更改設備方向
- 7. 如何在視圖彈出後從uinavigationcontroller中刪除分段控制器?
- 8. 視圖控制器彈出ttthumbsviewcontroller
- 9. MVYSideMenu彈出到根視圖控制器
- 10. 如何在推送的視圖控制器下彈出視圖控制器?
- 11. 如何在導航彈出視圖控制器時更改動畫的方向
- 12. UINavigationController不推送視圖控制器
- 13. 不使用導航控制器時彈出視圖控制器?
- 14. 調用視圖控制器類而不彈出視圖控制器本身
- 15. 多視圖控制器的方向
- 16. iOS8鎖定視圖控制器方向
- 17. UINavigationController不斷顯示彈出視圖
- 18. 從彈出視圖中的tableViewController訪問父視圖控制器
- 19. 不會彈出到子視圖控制器的父視圖
- 20. '試圖彈出到不存在的視圖控制器。'
- 21. 彈出連續視圖控制器並返回主視圖控制器(使用導航控制器)
- 22. 無法在Swift 3.0中將視圖控制器顯示爲彈出控制器
- 23. 縱向方向除了在模式視圖控制器
- 24. 當彈出一個控制器時,UINavigationController內存不會減少
- 25. UINavigationController的背景圖像保持不動,並且在視圖控制器被按下或彈出時不動畫
- 26. viewWillDisappear:確定是否正在彈出視圖控制器或正在顯示子視圖控制器
- 27. 如何在彈出視圖控制器上做翻頁動畫?
- 28. 如何'彈出'到視圖控制器不在堆棧上
- 29. UIAlertViewcontroller在去視圖控制器之前沒有被彈出
- 30. 在導航控制器中彈出到根視圖
謝謝。有沒有像滑動'pushViewController'一樣滑動它的方法? – Mason
是的,就像我說的,你只需要改變這裏的線:[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO]; – Wesley
我明白這一點。雖然我找不到正確的轉換。 – Mason