UIKit框架(9)控制器的modal切换方式(二)-创新互联

  • storyboard中定义切换关系

    成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于网站建设、网站设计、昌宁网络推广、小程序开发、昌宁网络营销、昌宁企业策划、昌宁品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们大的嘉奖;成都创新互联公司为所有大学生创业者提供昌宁建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com

在storyboard中可以添加多个控制器,并且使用连线连接多个控制器之间的切换关系。

Segue:

   在storyboard中的控制器之间的连线,用来实现页面的跳转切换

   UIKit框架(9)控制器的modal切换方式(二)

两种Segue:自动型、手动型,都是UIStoryboardSegue类型

属性:

@property(nonatomic, readonly) NSString *identifier //在源控制器中所有segue中的唯一标识
@property(nonatomic, readonly) id sourceViewController //源控制器
@property(nonatomic, readonly) id destinationViewController //目的控制器

    UIKit框架(9)控制器的modal切换方式(二)

  • 自动型Segue的使用

点击某个控件后(如按钮),自动执行Segue,完成界面的跳转。

在storyboard中按住Control,直接从控件拖线到目的控制器:

   UIKit框架(9)控制器的modal切换方式(二)

   segue类型选择presentation

  • 手动型Segue的使用

1)按住control,从源控制器拖线到目标控制器。

   UIKit框架(9)控制器的modal切换方式(二)

2)手动型Segue需要指定一个标识

   UIKit框架(9)控制器的modal切换方式(二)

3)通过代码执行Segue,即执行跳转动作

   UIViewController的执行Segue的方法:(源控制器调用)

- (void)performSegueWithIdentifier:(NSString *)identifier sender:(id)sender

   identifier参数:Segue的ID

   sender参数:任意对象,可传nil

  • 值的传递

正向传递:

   由于在跳转前不能获取segue对象的源控制,所以值的传递不能在performSegueWithIdentifier:前

   跳转前,源控制器会自动调用prepareForSegue:方法,重写该方法实现值的传递

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

   通过segue参数的identifier属性能够判断是哪个segue在执行

   通过segue参数的destinationViewController属性能够获得目的控制器

   仍然通过目的控制器添加属性,进行数据的传递,

    如:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ( [segue.identifier isEqualToString:@"pageOne2PageTwo"]) {
        AMViewControllerTwo * vc = segue.destinationViewController;
        vc.str = @"这是源控制器AMViewControllerOne给你的数据";
    }
}

逆向传递:

    仍然使用代理设计模式,与代码切换的逆向传值方式相同

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章标题:UIKit框架(9)控制器的modal切换方式(二)-创新互联
分享链接:http://ybzwz.com/article/deiigg.html