Ios 使用通知中心在域Swift 3中保存UIButton更改状态

Ios 使用通知中心在域Swift 3中保存UIButton更改状态,ios,notifications,swift3,uibutton,realm,Ios,Notifications,Swift3,Uibutton,Realm,我有一个按钮,它的发送者观察一个通知并在它触发后更改它的标题。点火前,按钮标题为“A”。触发后,按钮标题为“B” 我正在尝试在域中保存更改的状态,以便用户可以看到按钮已更改 post(触发)通知发生在另一个添加UIView的按钮操作中。该子视图拥有post通知: NotificationCenter.default.post(name: fireNotification, object: nil) 触发post时,另一个add(observer)通知将对该事件起作用: // MARK: -

我有一个按钮,它的发送者观察一个通知并在它触发后更改它的标题。点火前,按钮标题为“A”。触发后,按钮标题为“B”

我正在尝试在域中保存更改的状态,以便用户可以看到按钮已更改

post(触发)通知发生在另一个添加UIView的按钮操作中。该子视图拥有post通知:

 NotificationCenter.default.post(name: fireNotification, object: nil)
触发post时,另一个add(observer)通知将对该事件起作用:

// MARK: - Observe Notification

    NotificationCenter.default.addObserver(forName: fireNotification, object: nil, queue: nil) { notification in
        print("Notification Observed")

        sender.setTitle("B", for: .normal)
        sender.setTitleColor(.red, for: .normal)
        sender.isEnabled = false
    } 
这显然会将按钮状态更改为B。如何将其写入并保存到我的领域?我试过:

// MARK: - Observe Notification

    NotificationCenter.default.addObserver(forName: fireNotification, object: nil, queue: nil) { notification in
    print("Notification Observed")

      let realm = try! Realm()
      try! realm.write {
        sender.setTitle("B", for: .normal)
        sender.setTitleColor(.red, for: .normal)
        sender.isEnabled = false
          } 
      } 

我是否应该向对象参数添加一些内容?

为了能够在域中保存数据,您需要创建自己的
RealmObject
子类并定义其属性。无法保存非
RealmObjects的状态


请签出文档以了解有关领域的更多信息:

嘿,Dmitry,你介意给我举个例子吗?Button不是域支持的类型,因此不能用作属性。我尝试使用数据,但也不起作用。我尝试过各种排列方式,从通过故事板的出口和动作到以编程方式创建按钮,打开
isSelected
,甚至使用
UIImage(名为:“abc”)
。我看了文件。TableView或CollectionView中的自定义按钮上没有任何示例。作为记录,我还使用了领域通知(这很好!),但无法在IndexPath保存所选项目的状态,因为按钮没有IndexPath。