【iOS 基础控件 -16 】 UIStoryboardSegue对象(Segue)
唯一标识
@property (nonatomic, readonly) NSString *identifier;
来源控制器
@property (nonatomic, readonly) id sourceViewController;
目标控制器
1 // 根据Segue ID 执行跳转 2 [self performSegueWithIdentifier:@"contactList" sender:nil];
1 #pragma mark - Segue相关 2 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 3 // 取得目标控制器 4 id controller = segue.destinationViewController; 5 6 // 判断跳转目标 7 if ([controller isKindOfClass:[AddViewController class]]) { 8 // 如果是“添加联系人” 9 AddViewController *addViewController = controller; 10 addViewController.delegate = self; 11 } 12 13 if ([controller isKindOfClass:[EditViewController class]]) { 14 // 如果是“查看/编辑联系人” 15 EditViewController *editViewController = controller; 16 17 // 取出数据 18 NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow]; 19 editViewController.contact = self.contacts[indexPath.row]; 20 21 // 设置代理 22 editViewController.delegate = self; 23 } 24 25 }
顺传
控制器的跳转方向: A C
数据的传递方向 : A C
数据的传递方式 : 在A的prepareForSegue:sender:方法中根据segue参数取得destinationViewController, 也就是控制器C, 直接给控制器C传递数据
控制器的跳转方向: A C
数据的传递方向 : C A
数据的传递方式 : 让A成为C的代理, 在C中调用A的代理方法,通过代理方法的参数传递数据给A
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。