繁体   English   中英

UIViewController isEditing - 属性观察器不起作用

[英]UIViewController isEditing - Property observer doesn't work

我试图在我的自定义 UIViewController 上实现属性观察器,但我注意到它不适用于 isEditing 属性。

你们知道为什么吗?

class MasterViewController: UIViewController {

    // MARK: - Properties

    override var isEditing: Bool {
        didSet {
            print("VC is editing")
        }
    }
}

根据isEditing的文档

如果已显示视图,请使用setEditing(_:animated :)方法作为操作方法来动画化此状态的过渡。

并从setEditing(_:animated:)

如果isEditing为true,则使用edit-done按钮的子类必须重写此方法,以将其视图更改为可编辑状态;如果为false,则将其视图更改为不可编辑状态。 此方法应在更新其视图之前调用super的实现。


TL; DR

您将要改写setEditing(_:animated:)

它适用于那些无法找到 setEditing 工作原理示例的人。

SWIFT 5:

override func setEditing(_ editing: Bool, animated: Bool) {
        if yourTableView.isEditing == true {
            yourTableView.isEditing = false //change back
            
            
        } else {
            yourTableView.isEditing = true // activate editing
            editButtonItem.isSelected = true // select edit button
        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM