簡體   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