模拟列表数据(demo讲解)
2019-10-08 本文已影响0人
下班不写程序
1. 知识点
1.1 闭包作为参数
1.2 解包的练习
1.3 当使用xib进行界面跳转的知识点(segue)
1.4 didSet方法的使用
1.5 自定义模型类中@objcMembers/@objc关键字的使用
1.6 闭包作为属性逆向传值
1.7 xib/sb 创建的子控件, 在外界进行赋值时, 会造成崩溃的问题
2. 上面的知识点(除segue)在demo中都有详细的注释, 接下来就简单介绍下segue:
2.1 一般情况下, 只有在使用 Storyboard进行页面间跳转才会使用到segue.
2.2 先要在storyboard中设置segue的identifier, 然后才能够使用.
2.3 在UIKit框架下找到UIStoryboardSegue类, 可以了解到它的基本属性:
// 标示便于在storyboard中找到
open var identifier: String? { get }
// 源控制器
open var source: UIViewController { get }
// 目标控制器
open var destination: UIViewController { get }
2.4 当使用segue推出下一个界面, 一般加载按钮的点击事件中调用:
@IBAction func nextClick(sender: AnyObject) {
self.performSegue(withIdentifier: "to2Vc", sender: self);
}
2.5 在跳转到下一个界面前做准备时调用,一般可以传递一些参数:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// 通过segue.destination来获取目标控制器
}
2.6 在使用performSegueWithIdentifier(sender)方法的时候,sender可以设置为我们想传的任意对象,在prepareForSegue(sender)方法中将sender传到想传到的view controller。
2.7 总结: 两种方法在swift语法使用如下:
// prepare 主要用于传值
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
super.prepare(for: segue, sender: sender)
if segue.identifier == "to2Vc"{
var view2: ViewController = segue.destinationViewController as ViewController
view2.strTtile = "要传递的值"
}
}
// performSegue 传递事件
@IBAction func nextClick(sender: AnyObject) {
self.performSegue(withIdentifier: "to2Vc", sender: self);
}