2017-03-10 2 views
0

나는 보낸 사람이 알림을 관찰하고 발생 후 제목을 변경하는 단추가 있습니다. 실행하기 전에 버튼 제목은 "A"입니다. 발사 후 버튼 제목은 "B"입니다.Save UIButton 영역에서 상태 변경 알림 센터가있는 Swift 3

변경된 상태를 영역에 저장하려고 했으므로 버튼이 변경된 것을 볼 수 있습니다.

포스트 (실행 중) 알림은 UIView를 추가하는 다른 단추 동작에서 발생합니다.

후 해고하면 다른 추가 (관찰자) 통지이 이벤트에 작용
NotificationCenter.default.post(name: fireNotification, object: nil) 

:

// 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 
      } 
     } 

개체 매개 변수에 뭔가를 추가해야합니까?

답변

0

영역에 데이터를 저장할 수 있으려면 RealmObject의 자체 하위 클래스를 만들고 해당 속성을 정의해야합니다. 비 RealmObjects의 상태는 저장할 수 없습니다.

영역에 대해 자세히 알아 보려면 문서를 체크 아웃하십시오 : https://realm.io/docs/swift/latest/

+0

야 드미트리, 당신이 나에게 예를 제공시겠습니까를? 단추는 유형이 지원하지 않으므로 특성으로 사용할 수 없습니다. 데이터를 사용해 보았지만 작동하지 않습니다. 스토리 보드를 통해 콘센트와 액션에서 모든 순열을 시도해 보았습니다. 버튼을 프로그래밍 방식으로 만들고, isSelected를 켜고, UIImage (이름은 "abc")를 사용했습니다. 나는 그 문서들을 읽었다. 테이블 뷰 또는 콜렉션 뷰의 사용자 정의 버튼에는 아무 예제도 없습니다. –

+0

기록을 위해, 나는 또한 영역 알림을 사용하고 있습니다. (대단합니다!) 버튼에 IndexPath가 없기 때문에 IndexPath에서 선택한 항목의 상태를 저장할 수 없습니다. –