我想在導航視圖控制器按下另一個視圖控制器時更改「從右向左」的「從右向左」過渡。我在故事板中找到了一個選項,但它似乎不起作用。過渡風格仍然相同。 通過單擊故事板的目的視圖控制器我發現了這一點,雖然它看起來像過渡是模態風格SEGUE:iOS push style segue transition
所以,我的問題是,是否有可能使推風格賽格過渡看起來不同?如果是這樣,怎麼樣?
我想在導航視圖控制器按下另一個視圖控制器時更改「從右向左」的「從右向左」過渡。我在故事板中找到了一個選項,但它似乎不起作用。過渡風格仍然相同。 通過單擊故事板的目的視圖控制器我發現了這一點,雖然它看起來像過渡是模態風格SEGUE:iOS push style segue transition
所以,我的問題是,是否有可能使推風格賽格過渡看起來不同?如果是這樣,怎麼樣?
爲了進行推送轉換,您需要使用連接視圖的UINavigationController。這些都是一次過渡的模式轉換選擇。
同樣,至少在故事板中,如果您已經在使用UINavigationController,則無法使用其他任何操作。
我發現解決此限制的最簡單方法是在代碼中執行此操作,並在UIView Animation或CAAnimation中包裝沒有動畫的推送。
您可以在自定義Segue中使用CATransition來實現任何類型的轉換。這裏是示例代碼。
-(void)perform {
__block UIViewController *sourceViewController = (UIViewController*)[self sourceViewController];
__block UIViewController *destinationController = (UIViewController*)[self destinationViewController];
CATransition* transition = [CATransition animation];
transition.duration = .25;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionPush; //kCATransitionMoveIn; //, kCATransitionPush, kCATransitionReveal, kCATransitionFade
transition.subtype = kCATransitionFromLeft; //kCATransitionFromLeft, kCATransitionFromRight, kCATransitionFromTop, kCATransitionFromBottom
[sourceViewController.navigationController.view.layer addAnimation:transition
forKey:kCATransition];
[sourceViewController.navigationController pushViewController:destinationController animated:NO];
}
你訪問這個鏈接查看更多細節http://blog.jambura.com/2012/07/05/custom-segue-animation-left-to-right-using-catransition/
大答案兄弟......我看着它很長一段時間:-) –