标签:
在 Storyboard 的可视化编程中,跳转界面就是按住 Ctrl 使用鼠标头一条连线就可以解决,相当的简单!本篇博客主要就是介绍这条连线,在iOS中,这条连线也是一个对象,也有其自己的初始化方法和属性。这个对象就是 UIStoryboardSegue 。
以前在 可视化编程-Storyboard 中也介绍过 UIStoryboardSegue 的概述和自定义
每一个 Segue 对象,都有3个属性
// 唯一标识 @property (nullable, nonatomic, copy, readonly) NSString *identifier; // 来源控制器 @property (nonatomic, readonly) __kindof UIViewController *sourceViewController; // 目标控制器 @property (nonatomic, readonly) __kindof UIViewController *destinationViewController;
2、Segue的类型
根据Segue的执行(跳转)时刻,Segue可以分为2大类类型:
按住 Ctrl 键,直接从控件拖线到目标控制器生成的关系连线
点击 "登录" 按钮后,就会自动跳转到右边的控制器
使用情况:如果点击某个控件后,不需要做任何判断,一定要跳转到下一界面,建议使用 "自动型Segue"
按住 Ctrl 键,从来源控制器拖线到目标控制器生成的关系连线
手动型设置唯一标识如下图:
在恰当的时刻,使用 perform 方法执行对应的 Segue,方法如下:
// 这个方法是UIViewController的一个方法 // 参数1:表示上述手动型Segue的标识符 // 参数2:传递的东西,不使用时置为nil - (void)performSegueWithIdentifier:(NSString *)identifier sender:(nullable id)sender
代码实例:
#pragma mark - 登录按钮按钮 - (IBAction)loginBtnAction:(id)sender { // 提示用户,正在登录ing... [MBProgressHUD showMessage:@"正在登录ing..."]; // 模仿延迟登录 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ // 隐藏蒙版 [MBProgressHUD hideHUD]; // UIStoryboardSegue if ([_accountTextFiled.text isEqualToString:@"zf"] && [_pwdTextField.text isEqualToString:@"123"]) { // 输入正确 // 跳转到联系人界面 [self performSegueWithIdentifier:@"login2ContactList" sender:nil]; } else { // 输入正确 [MBProgressHUD showError:@"用户或密码输入错误"]; } }); }
标签:
原文地址:http://www.cnblogs.com/gfxxbk/p/5559583.html