[Xcode 实际操作]九、实用进阶-(23)多个Storyboard故事板中的页面跳转

目录:[Swift]Xcode实际操作

本文将演示多个Storyboard故事板中的页面跳转。

使用快捷键【Command】+【N】创建一个新的故事板文件。

(在项目文件夹【DemoApp】上点击鼠标右键【New File】创建)

->【Storyboard】->【Next】->【Save As】:Storyboard.storyboard

->保存默认的存储位置点击【Create】

新添加的当前故事板中还没有添加视图控制器,

点击【库图标】,打开控件库面板,

在【View Controller】视图控制器上双击,往故事板中插入第一个视图控制器。

现在故事板中,已经拥有了一个视图控制器,点击视图控制器下方的【模型尺寸列表】

在弹出的设备控制器列表中,选择一个小型的设备,以调整故事板中的控制器的尺寸,

使故事板可以在一屏范围内,显示更多的控制器。

点击【库图标】,打开控件库面板,

在【View Controller】视图控制器上双击,往故事板中插入第二个视图控制器。

点击【显示或隐藏检查器】图标,打开右侧的检查器面板。

点击【身份检查器图标】进入身份检查器面板。

【Storyboard ID】:servicePage,即输入第二个视图控制器在故事板中的标识。

将在下文中通过这个标识,获得该视图控制器。

在故事版左侧的文档框架区域,选择第一个视图控制器。

点击【属性检查器】图标,打开属性设置面板。

勾选【Is Initial View Controller】是否初始视图控制器复选框。

设置第一个视图控制器为当前控制板的视图控制器。

然后选择视图控制器中的根视图,往根视图中添加控件。

点击【库图标】,打开控件库面板,

在【Button】按钮控件上双击,往根视图插入一个按钮控件。

在按钮定界框的左侧按下手指,以调整按钮的宽度。

设置按钮的标题文字,【Tile】下方输入框:Back。

使用快捷键【Command】+【N】创建在故事版中,第一个视图控制器对应的类文件。

(在项目文件夹【DemoApp】上点击鼠标右键【New File】创建)

->【Cocoa Touch Class】->【Next】->

【Class】:ServiceViewController。输入类名。

【Subclass of】:UIViewController,父类名称

【Language】:Swift,类文件的默认语言

->【Next】->保存默认的存储位置点击【Create】

在项目导航区,打开并编辑上文创建的故事版文件【Storyboard.storyboard】

然后选择第一个视图控制器,给视图控制器指定对应的类文件。

点击身份检查器图标,进入身份检查器面板。

【Class】:ServiceViewController,即输入刚刚创建的类文件的名称。

这样故事板中的视图控制器,就和类文件进行了绑定和连接。

点击【显示或隐藏辅助编辑器】图标,打开辅助编辑器。

选择控制器中的按钮控件,需要将按钮控件,与绑定的类文件的方法进行连接。

在按钮上点击鼠标右键,然后拖动到右侧的代码文件中。

(两个方法:1.鼠标右键 2.【Command】+鼠标左键)

设置:

【Connection】:Action

【Name】:goBack

点击【Connect】完成按钮的连接设置。

在项目导航区,打开视图控制器的代码文件【ServiceViewController.swift】

 1 import UIKit
 2 
 3 class ServiceViewController: UIViewController {
 4 
 5     @IBAction func goBack(_ sender: Any) {
 6         //当用户点击按钮时,导航控件将返回上一页
 7         self.navigationController?.popViewController(animated: true)
 8     }
 9     override func viewDidLoad() {
10         super.viewDidLoad()
11 
12         // Do any additional setup after loading the view.
13     }
14 }

点击显示标准编辑器按钮,恢复默认的编辑器界面。

打开并查看主故事版【Main.storyboard】的内容。

视图控制器中有三个跳转按钮,当用户点击不同的按钮时,跳转到不同的页面。

在项目导航区,打开视图控制器的代码文件【ViewController.swift】

编写代码,实现按钮控件的连接方法。

 1 import UIKit
 2 
 3 class ViewController: UIViewController {
 4     
 5     //现在为第二个按钮添加点击事件
 6     @IBAction func gotoPage1OfStoryboard(_ sender: AnyObject) {
 7         //从项目中,获得指定名称的故事版文件
 8         let storyBoard = UIStoryboard(name: "ServiceStoryboard", bundle: nil)
 9         //获得故事板中的初始视图控制器
10         let vc = storyBoard.instantiateInitialViewController()
11         
12         //在当前的页面中,跳转到指定的视图控制器
13         self.navigationController?.pushViewController(vc!, animated: true)
14     }
15     
16      //现在为第三个按钮添加点击事件
17     @IBAction func gotoPage2OfStoryboard(_ sender: AnyObject) {
18         //从项目中,获得指定名称的故事版文件
19         let storyBoard = UIStoryboard(name: "ServiceStoryboard", bundle: nil)
20         //根据上文给视图控制器设置的故事版标识,获得对应的故事版控制器
21         let vc = storyBoard.instantiateViewController(withIdentifier: "servicePage")
22         
23         //在导航控制器中,从当前的页面跳转到指定的视图控制器
24         self.navigationController?.pushViewController(vc, animated: true)
25         //在页面进行跳转的同时,隐藏底部的标签栏
26         self.tabBarController?.tabBar.isHidden = true
27     }
28     
29     override func viewDidLoad() {
30         super.viewDidLoad()
31         // Do any additional setup after loading the view, typically from a nib.
32     }
33     
34     override func didReceiveMemoryWarning() {
35         super.didReceiveMemoryWarning()
36         // Dispose of any resources that can be recreated.
37     }
38 }
原文地址:https://www.cnblogs.com/strengthen/p/10092955.html