iOS界面之间的跳转

此文中我会用 Segues 来完成一个控制器连接到另一个控制器。

Segues 是 Interface Builder 里面功能最强大的东西,它允许我们从一个控制器连接到另一个控制器,或者是从控制器的一个 UI 控件(比如按钮)连接到另一个控制器。方法有二:

方法一:

创建一个 Single View App 项目,此时的 Storyboard 中只有一个控制器视图。

从对象库中拖拽一个新的视图控制器到 Storyboard 中,此时 Storyboard 中包含了2个视图控制器。

拖拽一个 Button 到第一个视图控制器中,然后在 Button 上按住鼠标右键拖拽到第二个视图控制器,此时会建立一条 Segue ,Segue 的原点就是刚才点击的按钮,终点是第二个视图控制器。在弹出的快捷菜单中,会有很多不同类型选项。如图:

其中 Show 是最简单的连接方式,它会以从底部向上滑动的方式呈现第二个控制器视图,当 Segue 创建好了以后,在控制器视图之间会有一个箭头,如上图中间灰色图形。

构建并运行项目,点击按钮后会进入第二个控制器视图。

(注:此时的第二个视图控制器没有关联任何类或实体类文件)

接下来我们创建与之关联的类文件。

在第一个视图控制器所在文件夹下新建一个 iOS/Cocoa Touch Class 类型的文件, Class 可以设置为 SecondViewController,确保 Subclass of 设置为 UIViewController。

创建完毕后我们要将该代码文件与 Storyboard 中的第二个视图控制器关联起来。在第二个视图控制器的 Identifier Inspector 中将 Class 设置为 SecondViewController,此时关联成功。

方法二:

时间机器回到刚才两个视图控制器还没有任何操作的时刻。不从按钮处链接第二个视图控制器。从如图所示处连接:

然后在展示的快捷菜单中选择 Show ,即可添加 Segue 连接。

接着在选中 Segue ,在右侧 Attributes Inspector 中将 Identifier 设置为 goToSecondScreen 然后就可以在代码中访问这个 goToSecondScreen。

接着为第一个视图控制器的 Button 设置 IBAction 方法,名称可以定义为 buttonPressed。

@IBAction func buttonPressed(_sender:UIButton) {

        performSegue(withIdentifier: "goToSecondScreen",  sender: self)

    }

performSegueg() 方法用于执行一个 Segue 连接,其中第一个参数代表要执行的 Segue 标

识.也就是之前在故事板中设置的 Identifier ,第二个参数是这个 Segue 的发起者,因为是第一个控制器发起的,所以这里使用 self 。

使用这种方式的好处在于,如果App需要用户在单击某个按钮以后,根据不同的情况呈现不同控制器到屏幕上,则需要创建多个 Segue ,再根据情况执行特定的 Segue。

构建并运行项目,单击按钮以后在屏幕上依然会呈现第二控制器。

你可能感兴趣的:(iOS界面之间的跳转)