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
- clean architecture
- Clean Code
- combine
- UITextView
- Human interface guide
- uitableview
- Xcode
- swiftUI
- rxswift
- HIG
- map
- UICollectionView
- 리펙터링
- swift documentation
- collectionview
- uiscrollview
- Protocol
- RxCocoa
- SWIFT
- 리팩토링
- MVVM
- 애니메이션
- tableView
- Observable
- 스위프트
- Refactoring
- 클린 코드
- ios
- ribs
- 리펙토링
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] NotificationCenter, RxSwift, Foreground진입 시 동작 본문
iOS 응용 (swift)
[iOS - swift] NotificationCenter, RxSwift, Foreground진입 시 동작
jake-kim 2020. 11. 16. 22:37Rx를 쓰지 않고 NotificationCenter를 이용한 방법은 여기 참고
NotificationCenter를 쓰는 경우
- 화면이 background에서 foreground로 변하는 경우
- AppDelegate에서 딥링크 처리시, 특정 화면에 event를 주입해주고 알림을 보내는 경우
사용준비
pod file에 아래 정보 입력 후 pod install
pod 'RxSwift'
pod 'RxCocoa'
기본 구조
(케이스: AppDelegate에서 home에 노티를 보내고 싶은 경우)
- NotificationCenter를 구별할 수 있는 key 정의 (타입은 NSNotification.Name(_ :String))
// Constants
extension NSNotification.Name {
static let home = NSNotification.Name("Home")
}
- 노티 전송 (주는 쪽)
// AppDelegate
NotificationCenter.default.post(name: .home, object: nil)
- 노티 관찰 (받는 쪽)
NotificationCenter.default.rx.notification(.home)
.asDriverOnErrorNever()
.drive(onNext: { [weak self] _ in
print("noti 수신")
}).disposed(by: bag)
Foreground에 진입 한 경우, 관찰 하는 법 (받는 쪽)
// myAppViewModel.swift
NotificationCenter.default.rx.notification(UIApplication.willEnterForegroundNotification)
.asDriver(onErrorRecover: { _ in .never()})
.drive(onNext: { [weak self] _ in
print("foreground 진입")
}).disposed(by: bag)
'iOS 응용 (swift)' 카테고리의 다른 글
[iOS - swift] 커스텀 버튼(custom button) 만들기 (0) | 2020.11.20 |
---|---|
[iOS - swift] 버튼을 누를 경우, 클립보드에 자동 저장 기능, 복사하기, copy (UIPasteboard.general.string) (0) | 2020.11.20 |
[iOS - swift] KeychainAccess프레임워크로 키체인(keychain)관리하기 (0) | 2020.11.15 |
[iOS - swift] table view에서 특정 separator 삭제 방법 (header의 하단, 마지막 셀의 하단) (0) | 2020.11.12 |
[iOS - swift] iOS14+ 위치 권한 설정 (precise) (0) | 2020.11.08 |
Comments