1. ViewController提供了一个 presentViewController: *target animated: YES completion:^(void) 方法可以跳转到指定的target中,跳转的时候可以指定动画。
[target setModalTransitionStyle:UIModaltransitionStyle]可以指定跳转时的动画,IOS系统提供了四中跳转动画,默认的是垂直切换动画。
Transition styles available when presenting view controllers.
typedef enum {
UIModalTransitionStyleCoverVertical = 0,
UIModalTransitionStyleFlipHorizontal,
UIModalTransitionStyleCrossDissolve,
UIModalTransitionStylePartialCurl,
} UIModalTransitionStyle;
2. 通过方法1中提供的方法切换ViewController,需要自己添加返回按钮,为按钮添加消息响应
[self dismissViewController animated:YES completion:nil];即可对应的动画返回启动此ViewController的启动界面。
IOS官方文档对此的解释是:
The presenting view controller is responsible for dismissing the view controller it presented. If you call this method on the presented view controller itself, it automatically forwards the message to the presenting view controller.
If you present several view controllers in succession, thus building a stack of presented view controllers, calling this method on a view controller lower in the stack dismisses its immediate child view controller and all view controllers above that child on the stack. When this happens, only the top-most view is dismissed in an animated fashion; any intermediate view controllers are simply removed from the stack. The top-most view is dismissed using its modal transition style, which may differ from the styles used by other view controllers lower in the stack.
If you want to retain a reference to the receiver’s presented view controller, get the value in the presentedViewController
property before calling this method.
The completion handler is called after the viewDidDisappear:
method is called on the presented view controller