一、什么是segue

<1>唯一标识符
@property (nonatomic, readonly) NSString *identifier;
<2>来源控制器
@property (nonatomic, readonly) id sourceViewController;
<3>目标控制器
@property (nonatomic, readonly) id destinationViewController;

三、Segue的类型
根据segue的执行(跳转)时刻,Segue可以分为2大类型


在恰当的时刻,使用perform方法执行对应的Segue
// Segue必须由来源控制器来执行,也就是说,这个perform方法必须由来源控制器来调用
[self performSegueWithIdentifier:@"login2contacts" sender:nil];
四、performSegueWithIdentifier:sender:方法的完整执行过程
// 这个self是来源控制器
[self performSegueWithIdentifier:@"login2contacts" sender:nil];
<1>根据identifier去storyboard中找到对应的线,新建UIStoryboardSegue对象
<1.1>设置Segue对象的sourceViewController(来源控制器)
<1.2>新建并且设置Segue对象的destinationViewController(目标控制器)
<2>调用sourceViewController的线面方法,做一些跳转前的准备工作并且传入创建好的Segue对象
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender;
// 这个sender是当初performSegueWithIdentifier:sender:中传入的sender
<3>调用Segue对象的- (void)perform;方法开始执行界面跳转操作
<3.1>如果Segue的style是push
<3.2>如果Segue的style是modal
<4>Sender参数的传递

五、控制器的数据传递--控制器之间的数据传递主要有2种情况:顺传和逆传
<1>顺传


<逆传>




iOS边练边学--通讯录练习之Segue使用,控制器的数据传递
原文:http://www.cnblogs.com/gchlcc/p/5325098.html