我試圖調用[[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. UINavigationController - 在彈出視圖控制器之前運行代碼
- 2. iOS:在彈出視圖控制器時更改界面方向
- 3. 從UINavigationController中彈出視圖控制器的問題
- 4. 使用UINavigationController彈出視圖控制器時傳遞值
- 5. 「彈出」UINavigationController中的幾個視圖控制器堆棧
- 6. pushviewcontroller或彈出到視圖控制器UINavigationController
- 7. 僅在橫向模式下彈出視圖控制器時方向錯誤
- 8. 在UINavigationController中推視圖控制器
- 9. 需要幫助解僱模態呈現視圖控制器,並從彈出的UINavigationController視圖控制器
- 10. - 視圖 - 控制器遏制與UINavigationController的
- 11. 從UINavigationController彈出視圖更改設備方向
- 12. 如何在視圖彈出後從uinavigationcontroller中刪除分段控制器?
- 13. MVYSideMenu彈出到根視圖控制器
- 14. 彈出到初始視圖控制器
- 15. 視圖控制器彈出ttthumbsviewcontroller
- 16. 如何在推送的視圖控制器下彈出視圖控制器?
- 17. 將視圖控制器彈出到一個不存在的視圖控制器
- 18. 如何在導航彈出視圖控制器時更改動畫的方向
- 19. UINavigationController不推視圖控制器
- 20. UINavigationController不推送視圖控制器
- 21. UINavigationController的錯誤推視圖控制器
- 22. UINavigationController不顯示根視圖控制器
- 23. 不使用導航控制器時彈出視圖控制器?
- 24. 調用視圖控制器類而不彈出視圖控制器本身
- 25. 從彈出視圖控制器獲取數據到父視圖控制器
- 26. 在UINavigationController中設置框架視圖控制器視圖
- 27. 將數據傳遞給UINavigationController指向的視圖控制器
- 28. iOS8鎖定視圖控制器方向
- 29. IOS視圖控制器方向
- 30. 多視圖控制器的方向
謝謝。有沒有像滑動'pushViewController'一樣滑動它的方法? – Mason
是的,就像我說的,你只需要改變這裏的線:[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO]; – Wesley
我明白這一點。雖然我找不到正確的轉換。 – Mason