免费开源的iOS开发学习平台

UIViewController介绍:5-使用StoryBoard切换控制器

对于一款应用来说,绝大多数情况下都会存在多个控制器,因此,就会涉及到多个控制器之间的互相切换。有关控制器之间的切换有很多种可能性,本节讲解如何使用故事版Storyboard来实现UIViewController控制器对象之间的切换。

基于StoryBoard切换控制器的设置方法

打开StoryBoard,添加两个控制器对象,并且在第一个控制器上添加一个按钮控件;

选中按钮控件,按住ctrl键,拖拉按钮控件,连接到另外一个控制器,Action Segue选择show,如下图所示:

两个控制器之间的连接线,我们称之为segue,可以为这条segue设置一个名称,该名称可以在代码中使用。

Segue的类型介绍

Xcode提供了若干种Segue的类型,大家可以实际测试一下效果,最常使用的是show类型。

prepareForSegue方法

当发生控制器跳转时(前提是通过StoryBoard建立了Segue),系统会自动调用源控制器的prepareForSegue:方法,如下:

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

prepareForSegue方法中的segue参数,包含了3个重要属性,分别为:segue的ID,源控制器以及目标控制器,在开发过程中,经常会涉及到,在prepareForSegue方法中可以实现数据在源控制器以及目标控制器之间传递数据。

@property (nullable, nonatomic, copy, readonly) NSString *identifier;
@property (nonatomic, readonly) __kindof UIViewController *sourceViewController;
@property (nonatomic, readonly) __kindof UIViewController *destinationViewController;

示例代码

https://github.com/99ios/9.1.4