码迷,mamicode.com
首页 > 移动开发 > 详细

iOS学习之UIStoryboardSegue解析

时间:2016-06-05 12:22:47      阅读:257      评论:0      收藏:0      [点我收藏+]

标签:

在 Storyboard 的可视化编程中,跳转界面就是按住 Ctrl 使用鼠标头一条连线就可以解决,相当的简单!本篇博客主要就是介绍这条连线,在iOS中,这条连线也是一个对象,也有其自己的初始化方法和属性。这个对象就是 UIStoryboardSegue 。

技术分享

以前在 可视化编程-Storyboard也介绍过 UIStoryboardSegue 的概述和自定义

1、Segue的属性

 每一个 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大类类型:

  • 自动型:点击某个控件后(比如按钮),自动执行Segue,自动完成页面跳转

  按住 Ctrl 键,直接从控件拖线到目标控制器生成的关系连线

技术分享

  点击 "登录" 按钮后,就会自动跳转到右边的控制器

  使用情况:如果点击某个控件后,不需要做任何判断,一定要跳转到下一界面,建议使用 "自动型Segue"

 

  • 手动型: 需要通过写代码手动执行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:@"用户或密码输入错误"];
        }
    });
    
}

 

iOS学习之UIStoryboardSegue解析

标签:

原文地址:http://www.cnblogs.com/gfxxbk/p/5559583.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!