Merge pull request #721 from kylef/kylef/rx_title

Add rx_title to UIViewController
This commit is contained in:
Krunoslav Zaher 2016-05-31 21:35:48 +02:00
commit a9fafcee41
4 changed files with 71 additions and 3 deletions

View File

@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file.
---
## Master
#### Features
* Adds `rx_title` to `UIViewController`.
## [2.5.0](https://github.com/ReactiveX/RxSwift/releases/tag/2.5.0)
#### Features

View File

@ -7,14 +7,16 @@
objects = {
/* Begin PBXBuildFile section */
46307D4E1CDE77D800E47A1C /* UIAlertAction+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46307D4D1CDE77D800E47A1C /* UIAlertAction+Rx.swift */; };
46307D4F1CDE77D800E47A1C /* UIAlertAction+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46307D4D1CDE77D800E47A1C /* UIAlertAction+Rx.swift */; };
1AF67DA21CED420A00C310FA /* PublishSubjectTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1AF67DA11CED420A00C310FA /* PublishSubjectTest.swift */; };
1AF67DA31CED427D00C310FA /* PublishSubjectTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1AF67DA11CED420A00C310FA /* PublishSubjectTest.swift */; };
1AF67DA41CED427D00C310FA /* PublishSubjectTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1AF67DA11CED420A00C310FA /* PublishSubjectTest.swift */; };
1AF67DA61CED430100C310FA /* ReplaySubjectTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1AF67DA51CED430100C310FA /* ReplaySubjectTest.swift */; };
1AF67DA71CED430100C310FA /* ReplaySubjectTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1AF67DA51CED430100C310FA /* ReplaySubjectTest.swift */; };
1AF67DA81CED430100C310FA /* ReplaySubjectTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1AF67DA51CED430100C310FA /* ReplaySubjectTest.swift */; };
271A97411CFC996B00D64125 /* UIViewController+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 271A97401CFC996B00D64125 /* UIViewController+Rx.swift */; };
271A97441CFC9F7B00D64125 /* UIViewControler+RxTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 271A97421CFC99FE00D64125 /* UIViewControler+RxTests.swift */; };
46307D4E1CDE77D800E47A1C /* UIAlertAction+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46307D4D1CDE77D800E47A1C /* UIAlertAction+Rx.swift */; };
46307D4F1CDE77D800E47A1C /* UIAlertAction+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46307D4D1CDE77D800E47A1C /* UIAlertAction+Rx.swift */; };
54700CA01CE37E1800EF3A8F /* UINavigationItem+RxTests.swift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54700C9E1CE37D1000EF3A8F /* UINavigationItem+RxTests.swift.swift */; };
54700CA11CE37E1900EF3A8F /* UINavigationItem+RxTests.swift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54700C9E1CE37D1000EF3A8F /* UINavigationItem+RxTests.swift.swift */; };
54D2138E1CE0824E0028D5B4 /* UINavigationItem+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54D2138C1CE081890028D5B4 /* UINavigationItem+Rx.swift */; };
@ -1371,9 +1373,11 @@
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
46307D4D1CDE77D800E47A1C /* UIAlertAction+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIAlertAction+Rx.swift"; sourceTree = "<group>"; };
1AF67DA11CED420A00C310FA /* PublishSubjectTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PublishSubjectTest.swift; sourceTree = "<group>"; };
1AF67DA51CED430100C310FA /* ReplaySubjectTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReplaySubjectTest.swift; sourceTree = "<group>"; };
271A97401CFC996B00D64125 /* UIViewController+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIViewController+Rx.swift"; sourceTree = "<group>"; };
271A97421CFC99FE00D64125 /* UIViewControler+RxTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIViewControler+RxTests.swift"; sourceTree = "<group>"; };
46307D4D1CDE77D800E47A1C /* UIAlertAction+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIAlertAction+Rx.swift"; sourceTree = "<group>"; };
54700C9E1CE37D1000EF3A8F /* UINavigationItem+RxTests.swift.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UINavigationItem+RxTests.swift.swift"; sourceTree = "<group>"; };
54D2138C1CE081890028D5B4 /* UINavigationItem+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UINavigationItem+Rx.swift"; sourceTree = "<group>"; };
79E9DE881C3417FD009970AF /* DispatchQueueSchedulerQOS.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DispatchQueueSchedulerQOS.swift; sourceTree = "<group>"; };
@ -2282,6 +2286,7 @@
C83508EF1C38706D0027C24C /* RxTests-tvOS-Bridging-Header.h */,
C83508F01C38706D0027C24C /* SentMessageTest.swift */,
C83508F11C38706D0027C24C /* UIView+RxTests.swift */,
271A97421CFC99FE00D64125 /* UIViewControler+RxTests.swift */,
7F600F421C5D0D2D00535B1D /* UIRefreshControl+RxTests.swift */,
7EDBAEAB1C89B1A5006CBE67 /* UITabBarItem+RxTests.swift */,
C8B2908C1C94D6C500E923D0 /* UISearchBar+RxTests.swift */,
@ -2410,6 +2415,7 @@
C88253F91B8A752B00B02D69 /* Proxies */,
C88254051B8A752B00B02D69 /* UIBarButtonItem+Rx.swift */,
C839365E1C70E02200A9A09E /* UIApplication+Rx.swift */,
271A97401CFC996B00D64125 /* UIViewController+Rx.swift */,
C88254061B8A752B00B02D69 /* UIButton+Rx.swift */,
C88254071B8A752B00B02D69 /* UICollectionView+Rx.swift */,
C88254081B8A752B00B02D69 /* UIControl+Rx.swift */,
@ -3366,6 +3372,7 @@
C8093EED1B8A732E0088E94D /* KVOObservable.swift in Sources */,
D2F461021CD7AC1F00527B4D /* Reactive.swift in Sources */,
AAE623761C82475700FC7801 /* UIProgressView+Rx.swift in Sources */,
271A97411CFC996B00D64125 /* UIViewController+Rx.swift in Sources */,
C8DB968D1BF7595D0084BD53 /* KVORepresentable+Swift.swift in Sources */,
C80DDEB11BCE8CA3006A1832 /* Driver+Operators+arity.swift in Sources */,
C88254281B8A752B00B02D69 /* UIButton+Rx.swift in Sources */,
@ -3535,6 +3542,7 @@
C83509601C38706E0027C24C /* Observable+TimeTest.swift in Sources */,
C835093F1C38706E0027C24C /* ElementIndexPair.swift in Sources */,
C83509381C38706E0027C24C /* NSObject+RxTests.swift in Sources */,
271A97441CFC9F7B00D64125 /* UIViewControler+RxTests.swift in Sources */,
C83509631C38706E0027C24C /* SubjectConcurrencyTest.swift in Sources */,
84E4D3961C9B011000ADFDC9 /* UISearchController+RxTests.swift in Sources */,
C83509511C38706E0027C24C /* HistoricalSchedulerTest.swift in Sources */,

View File

@ -0,0 +1,29 @@
//
// UIViewController+Rx.swift
// Rx
//
// Created by Kyle Fuller on 27/05/2016.
// Copyright © 2016 Krunoslav Zaher. All rights reserved.
//
import Foundation
#if os(iOS)
import UIKit
#if !RX_NO_MODULE
import RxSwift
#endif
extension UIViewController {
/**
Bindable sink for `title`.
*/
public var rx_title: AnyObserver<String> {
return UIBindingObserver(UIElement: self) { viewController, title in
viewController.title = title
}.asObserver()
}
}
#endif

View File

@ -0,0 +1,24 @@
//
// UIViewControler+RxTests.swift
// Rx
//
// Created by Kyle Fuller on 30/05/2016.
// Copyright © 2016 Krunoslav Zaher. All rights reserved.
//
import Foundation
import RxSwift
import RxCocoa
import UIKit
import XCTest
class UITViewControllerTests : RxTest {
func testRxTitle() {
let viewController = UIViewController()
_ = Observable.just("title").bindTo(viewController.rx_title)
XCTAssertEqual("title", viewController.title)
}
}