模拟列表数据(demo讲解)

2019-10-08  本文已影响0人  下班不写程序

1. 知识点

demo地址

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);
    }
上一篇下一篇

猜你喜欢

热点阅读