Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 클린 코드
- MVVM
- ios
- SWIFT
- Human interface guide
- combine
- uiscrollview
- UICollectionView
- tableView
- Observable
- 리팩토링
- Xcode
- Clean Code
- 애니메이션
- rxswift
- swiftUI
- Refactoring
- Protocol
- RxCocoa
- UITextView
- swift documentation
- uitableview
- 리펙터링
- collectionview
- 리펙토링
- clean architecture
- ribs
- map
- 스위프트
- HIG
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] 16. notificationCenter 본문
1. 개념
- 특정 객체가 NotificationCenter에 등록된 Event를 발생(post)
- 등록된 Observer들이 Event에 대한 행동을 취하는 것
2. 구현
버튼을 클릭하면 Label이 안보이게 하는 내용
1) post (이벤트 발생)
@IBAction func unhide(_ sender: Any) {
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "unhide"), object: nil, userInfo: nil)
}
2) 이벤트 처리 adObserver
// in the viewDidLoad
NotificationCenter.default.addObserver(self, selector: #selector(unHideLabel), name: NSNotification.Name(rawValue: "unhide"), object: nil)
@objc func unHideLabel() {
lbl.layer.isHidden = true
}
* userInfo사용할경우,
// 옵저버 등록
let phoneNo = NotificationCenter.default.addObserver(forName: "phoneNumber", object: nil, queue: nil) {notification in
let phone = notification.userInfo?["phoneNo"] as? String
print("phone = \(phone)")
}
// 발송자
let userInfo: [AnyHashable: Any] = ["phoneNo":"010-1111-2222"]
NotificationCenter.default.post(name: NSNotification.Name("phoneNumber"),
object: nil,
userInfo: userInfo)
'iOS 기본 (swift)' 카테고리의 다른 글
[iOS - swift] 18. setNeedsLayout, layoutIfNeeded (run loop, update cycle개념) (0) | 2020.09.19 |
---|---|
[iOS - swift] 17. status bar 글씨 색깔 지정하기 (0) | 2020.08.16 |
[iOS - swift] 15. event의 원리 (hitTest, point, Responder Chain, Touch event) (0) | 2020.06.06 |
[iOS - swift] 14. frame과 bounds (0) | 2020.06.04 |
[iOS - swift] 13. 컬렉션 뷰(Collection View) (0) | 2020.05.23 |
Comments