Segue跳转
performSegueWithIdentifier:sender:
方法的完整执行过程
//
这个
self
是来源控制器
[ self performSegueWithIdentifier:@“login2contacts” sender: nil ];
[ self performSegueWithIdentifier:@“login2contacts” sender: nil ];
1.
根据
identifier
去
storyboard
中找到对应的线,新建
UIStoryboardSegue
对象
(1). 设置 Segue 对象的 sourceViewController (来源控制器)
(2). 新建并且设置 Segue 对象的 destinationViewController (目标控制器)
(1). 设置 Segue 对象的 sourceViewController (来源控制器)
(2). 新建并且设置 Segue 对象的 destinationViewController (目标控制器)
2.
调用
sourceViewController
的下面方法,做一些跳转前的准备工作并且传入创建好的
Segue
对象
//
这个
sender
是当初
performSegueWithIdentifier:sender:
中传入的
sender
- ( void )prepareForSegue:(UIStoryboardSegue *)segue sender:( id )sender;
3. 调用 Segue 对象的 - ( void )perform; 方法开始执行界面跳转操作
- ( void )prepareForSegue:(UIStoryboardSegue *)segue sender:( id )sender;
3. 调用 Segue 对象的 - ( void )perform; 方法开始执行界面跳转操作
(1). 如果 segue 的 style 是 push
取得
sourceViewController
所在的
UINavigationController
调用 UINavigationController 的 push 方法将 destinationViewController 压入栈中,完成跳转
调用 UINavigationController 的 push 方法将 destinationViewController 压入栈中,完成跳转
(2). 如果 segue 的 style 是 modal
调用
sourceViewController
的
presentViewController
方法将
destinationViewController
展示出来