热烈欢迎,请直接点击!!!
进入博主App Store主页,下载使用各个作品!!!
注:博主将坚持每月上线一个新app!!!
本文将演示故事板页面之间的数据传递。 首先在一个空白项目中,打开项目自带的故事板文件(Main.storyboard)。 故事板中已经拥有了一个视图控制器,点击选择该视图控制器。 然后依此点击[Editor(编辑器)]->Embed In(置入)->[Navigation Controller(导航控制器)], 将这个视图控制器,置入一个导航控制器之内。 接着继续往导航控制器添加一个新的视图控制器。 首先点击右上角的显示或隐藏工具面板图标,打开右侧的面板区。 然后点击故事板下方的滚动条,查看右侧的内容。 在在组件中的视图控制器图标上按下手指,然后向故事版中拖动。 此时故事板中多了一个新的视图控制器,现在将两个视图控制器进行连接, 点击选择原来的视图控制器。 然后三个图表中的第一个按下鼠标右键,并向右侧的视图控制器拖动。 当松开鼠标时,会弹出一个选项菜单,选择菜单中的push(deprecated)选项, 使第一个视图控制器,可以再导航控制器之中,滑入第二个视图控制器。 然后选择两个视图控制器之间的连接线。 给该连接线进行命名,这样就可以在第一个视图控制器之中, 通过该名称的连接线,滑入第二个视图控制器。 Identifier: showDetail。按下键盘上的回车键,完成命名操作。 接着往视图控制器中添加一个按钮,点击右侧的垂直滚动条,跳转到按钮所在的位置。 点击故事板下方的滚动条,以完整显示第一个视图控制器。 将按钮控件从控件库中,拖动到故事板中的适当位置。 当用户点击该按钮时,从当前的视图控制器,跳转到右侧的视图控制器。 点击进入尺寸检查器面板。点击右侧的垂直滚动条,跳转到坐标和尺寸设置区域。 然后依此设置按钮控件的坐标、宽度和高度的数值,同时观察按钮的变化。 设置一个和屏幕大小相同的按钮,接着点击切换至属性检查器面板。 点击右侧的垂直滚动条,跳转到背景颜色设置区域。 打开Background的下拉箭头,打开系统预设的颜色面板。 然后选择一种颜色作为按钮的背景颜色。 接着点击顶部的显示辅助编辑器图标,打开辅助编辑器。 点击右上角的显示或隐藏工具面板图标,隐藏右侧的面板区。 在按钮上按下鼠标右键,并拖动到右侧的类文件中, 从而建立一个和按钮绑定的动作。 点击连接右侧的下拉箭头,选择列表中的动作选项。 Connection:Action 在名称输入框内输入属性的名称 Name:showDetail 然后点击连接图标Connect,在类文件中创建一个和按钮控件相连接的方法。 完成控件和动作的连接之后,点击顶部的显示标准编辑器图标,切换至标准编辑器模式。 接着对第二个视图控制器进行编辑。 首先选择根视图。 点击右上角的显示或隐藏图标,切换右侧面板区的可见性。 将一个标签控件,从控件库拖动到故事板的适当位置。 点击显示尺寸检查器图标,点击显示尺寸检查器面板。 然后依此设置标签,宽度和高度的数值,同时观察标签的变化。 获得一个和屏幕相同大小的标签控件,接着点击切换至属性检查器面板。 点击居中的图标,将文字居中显示。 设置Font、background. 接着创建一个和该视图控制器绑定的类文件。在类文件中点击鼠标右键,弹出右键菜单。 New File ->Next ->Class:DetailViewController /SubClass:UIVIew ->Next ->Create 然后点击打开故事板文件。选择故事板中的视图控制器。接着切换至身份检查器面板。 在Class类名输入框内,输入刚刚创建的类文件(DetailViewController), 使故事板中的视图控制器和类文件进行绑定。 点击顶部的显示辅助编辑器图标,打开辅助编辑器。 在在标签上按下鼠标右键,并拖动到右侧的类文件中,从而建立一个和标签绑定的属性。 设置Name:detailLabel DetailViewController.swift文件
1 import UIKit
2
3 class DetailViewController: UIView{
4
5 //添加一个字符串类型的属性,用来接收来自上一个页面传递的数据
6 var parameter: String!
7
8 @IBOutlet var detailLabel:UILabel!
9
10 override func viewDidLoad()
11 {
12 super.viewDidLoad()
13 //接着同步更新页面中的标签的文字内容
14 self.detailLabel.text = self.parameter
15 }
16
17 //析构方法
18 override func didReciveMemoryWarning(){
19 super.didReceiveMemoryWarning()
20
21 }
22 }
ViewController.swift文件
1 import UIKit
2
3 class ViewController: UIViewController{
4
5 override func viewDidLoad()
6 {
7 super.viewDidLoad()
8 }
9
10 @IBAction func showDetail(_ sender:Any)
11 {
12 //当故事板中的按钮被点击时,通过指定名称的连接线,
13 //在导航控制器中,跳转到第二个视图控制器
14 self.performSegue(withIdentifier: "showDetail", sender: nil)
15 }
16
17 //重写父类中的方法,用来监听故事板中的连接线的跳转动作。
18 override func prepare(for segue: UIStoryboardSegue, send: Any?)
19 {
20 //获得连接的目标视图控制器,并转换为指定类型
21 let vc = segue.destination as! DetailViewController
22 //设置该视图控制器的属性,然后点击至DetailViewController.swift文件
23 vc.parameter = "Hello,Strengthen!"
24 }
25
26 //析构方法
27 override func didReciveMemoryWarning(){
28 super.didReceiveMemoryWarning()
29
30 }
31 }
1 import UIKit
2
3 internal class ViewController: UIViewController{
4
5 override internal func viewDidLoad()
6
7 @IBAction func showDetail(_ sender:Any)
8
9 override internal func didReceiveMemoryWarning()
10 }
|
请发表评论