다른 ViewController의 메뉴에 UIButton이 있습니다. 그들 모두는 똑같이 보입니다. 읽지 않은 메시지가 있거나 다른 이벤트가 발생하면 모든 ViewController에서 메뉴 단추의 이미지를 변경하려고합니다. 모든 ViewController에서 수동으로 변경하지 않고 어떻게 수행 할 수 있습니까?다른 ViewController에서 UIButtons를 자동으로 변경합니다.
0
A
답변
1
간단한 해결책은 들어오는 메시지가 발생할 때 반복 할 수있는 UIButton의 배열을 유지하는 것입니다.
let buttons: [UIButton] = [view1.button1, view2.button2]
... /// when event happens
for button in buttons {
button.backgroundColor = UIColor.red
}
버튼이 값 유형이 아닌 참조 유형이기 때문에 효과가 있습니다.
그러나 이것은 이벤트를 처리하는 방법에 대한 전반적인 디자인 문제와 더 비슷합니다. 들어오는 이벤트를 UI에 바인딩하려면 RxSwift 또는 ReactivCocoa을 조사하는 것이 좋습니다.
1
UIButton에서 상속. 상속 된 버튼 클래스에서 버튼 이미지를 변경할 셀렉터를 등록합니다. 당신은 당신이 함정에 원하는 이벤트를 트리거 할 때마다
NotificationCenter.default.addObserver(self, selector: #selector(updateButton), name: NSNotification.Name("myEventIdentifier"), object: nil)
지금, 당신은 통지를 게시하고 당신의 버튼의 등록 된 각 인스턴스에 대한 당신의 선택을 호출하여 변경을 트리거 :
NotificationCenter.default.post(name: NSNotification.Name("myEventIdentifier"), object: nil)
관련 문제
- 1. UIButtons를 다른 객체의 자식으로 만들기
- 2. 다른 사람과 자동으로 div 높이를 변경합니다.
- 3. 자동으로 셀 값을 변경합니다.
- 4. WebView가 자동으로 URL을 변경합니다.
- 5. 자동으로 키보드 레이아웃을 변경합니다.
- 6. 입력 언어를 자동으로 변경합니다.
- 7. Json.Parse가 자동으로 값을 변경합니다.
- 8. UILabel이 자동으로 색상을 변경합니다.
- 9. 자동으로 인스턴스 계층을 변경합니다.
- 10. 다른 ViewController에서 UISearchDisplayController 활성화
- 11. 다른 viewController에서 메서드 호출하기
- 12. 다른 ViewController에서 개체 선언
- 13. ViewController에서 다른 ViewController로 이동
- 14. 다른 viewController에서 segue를 시작하십시오.
- 15. 다른 viewController에서 웹보기 호출
- 16. 인코딩 - Pydev가 자동으로 문자를 변경합니다.
- 17. 참조로 전달할 값을 자동으로 변경합니다.
- 18. Windows에서 요소의 위치를 자동으로 변경합니다.
- 19. DataTable DataSource가 열을 자동으로 변경합니다.
- 20. 자동으로 숫자를 초 단위로 변경합니다.
- 21. 자바 스크립트로 이미지를 자동으로 변경합니다.
- 22. awk의 정규 표현식을 자동으로 변경합니다.
- 23. URL의 도메인 이름을 자동으로 변경합니다.
- 24. 2 UIButtons를 비교
- 25. Apple에서 UIButtons를 승인합니까?
- 26. UIView에서 하나씩 UIButtons를 보여줍니다.
- 27. 하나의 ViewController에서 다른 ViewController로 이동
- 28. 다른 viewcontroller에서 UIPopoverController를 해제하는 방법?
- 29. iPhone이 다른 viewController에서 NSMutableArray에 추가
- 30. 다른 ViewController에서 NavigationBar 텍스트 변경