Skip to content

Commit ff0c693

Browse files
committed
Merge branch 'trending'
2 parents b24ff59 + bb3b568 commit ff0c693

24 files changed

+605
-51
lines changed

MVVMReactiveCocoa.xcodeproj/project.pbxproj

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,9 @@
5353
24116E871A8E653200D25218 /* OCTRef+MRCUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 24116E861A8E653200D25218 /* OCTRef+MRCUtil.m */; };
5454
24116E8A1A8F28CE00D25218 /* SSKeychain+MRCUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 24116E891A8F28CE00D25218 /* SSKeychain+MRCUtil.m */; };
5555
24116E911A8F455000D25218 /* MRCDoubleTitleView.m in Sources */ = {isa = PBXBuildFile; fileRef = 24116E901A8F455000D25218 /* MRCDoubleTitleView.m */; };
56+
24143F061BD783D300555179 /* MRCTrendingSettingsViewModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 24143F051BD783D300555179 /* MRCTrendingSettingsViewModel.m */; settings = {ASSET_TAGS = (); }; };
57+
24143F151BD783F900555179 /* MRCTrendingSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 24143F131BD783F900555179 /* MRCTrendingSettingsViewController.m */; settings = {ASSET_TAGS = (); }; };
58+
24143F161BD783F900555179 /* MRCTrendingSettingsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 24143F141BD783F900555179 /* MRCTrendingSettingsViewController.xib */; settings = {ASSET_TAGS = (); }; };
5659
241DAC781B0893A0005FDA9C /* MRCMemoryCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 241DAC771B0893A0005FDA9C /* MRCMemoryCache.m */; };
5760
242307421B75A48700CBC74A /* UIView+MRCFrameAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 242307411B75A48700CBC74A /* UIView+MRCFrameAdditions.m */; };
5861
2424531F1A80D85300FFFCC1 /* OctoKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 242452EF1A80D78800FFFCC1 /* OctoKit.framework */; };
@@ -135,6 +138,9 @@
135138
249F35051A72A1A0008F1C2A /* MRCRepoStatisticsTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 249F34FE1A72A1A0008F1C2A /* MRCRepoStatisticsTableViewCell.xib */; };
136139
249F35061A72A1A0008F1C2A /* MRCRepoViewCodeTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 249F35001A72A1A0008F1C2A /* MRCRepoViewCodeTableViewCell.m */; };
137140
249F35071A72A1A0008F1C2A /* MRCRepoViewCodeTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 249F35011A72A1A0008F1C2A /* MRCRepoViewCodeTableViewCell.xib */; };
141+
24A47EA71BD5D9E9000B79D0 /* MRCTrendingViewModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 24A47EA61BD5D9E9000B79D0 /* MRCTrendingViewModel.m */; settings = {ASSET_TAGS = (); }; };
142+
24A47EB61BD5DA05000B79D0 /* MRCTrendingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 24A47EB41BD5DA05000B79D0 /* MRCTrendingViewController.m */; settings = {ASSET_TAGS = (); }; };
143+
24A47EB71BD5DA05000B79D0 /* MRCTrendingViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 24A47EB51BD5DA05000B79D0 /* MRCTrendingViewController.xib */; settings = {ASSET_TAGS = (); }; };
138144
24AF976B1B01E19000E2A737 /* UISearchBar+MRCShowsCancelButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 24AF976A1B01E19000E2A737 /* UISearchBar+MRCShowsCancelButton.m */; };
139145
24AF977E1B02292700E2A737 /* MRCSearch.m in Sources */ = {isa = PBXBuildFile; fileRef = 24AF977D1B02292700E2A737 /* MRCSearch.m */; };
140146
24B1045F1B04CE100046473E /* OCTClient+MRCRepository.m in Sources */ = {isa = PBXBuildFile; fileRef = 24B1045E1B04CE100046473E /* OCTClient+MRCRepository.m */; };
@@ -452,6 +458,11 @@
452458
24116E8F1A8F455000D25218 /* MRCDoubleTitleView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MRCDoubleTitleView.h; sourceTree = "<group>"; };
453459
24116E901A8F455000D25218 /* MRCDoubleTitleView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MRCDoubleTitleView.m; sourceTree = "<group>"; };
454460
24123E471AEE8AD300D5A074 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
461+
24143F041BD783D300555179 /* MRCTrendingSettingsViewModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MRCTrendingSettingsViewModel.h; sourceTree = "<group>"; };
462+
24143F051BD783D300555179 /* MRCTrendingSettingsViewModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MRCTrendingSettingsViewModel.m; sourceTree = "<group>"; };
463+
24143F121BD783F900555179 /* MRCTrendingSettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MRCTrendingSettingsViewController.h; sourceTree = "<group>"; };
464+
24143F131BD783F900555179 /* MRCTrendingSettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MRCTrendingSettingsViewController.m; sourceTree = "<group>"; };
465+
24143F141BD783F900555179 /* MRCTrendingSettingsViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MRCTrendingSettingsViewController.xib; sourceTree = "<group>"; };
455466
241545D51A67F3CF007AFD5B /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
456467
241545D71A67F3EF007AFD5B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
457468
241545D91A67F3F4007AFD5B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
@@ -583,6 +594,11 @@
583594
24A28AA11A75D957005235C5 /* AFNetworking.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AFNetworking.framework; path = "../../../Library/Developer/Xcode/DerivedData/MVVMReactiveCocoa-dkjcswigkwolokaimgekabgjuzne/Build/Products/Debug/AFNetworking.framework"; sourceTree = "<group>"; };
584595
24A28AA31A75D964005235C5 /* ISO8601DateFormatter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ISO8601DateFormatter.framework; path = "../../../Library/Developer/Xcode/DerivedData/MVVMReactiveCocoa-dkjcswigkwolokaimgekabgjuzne/Build/Products/Debug/ISO8601DateFormatter.framework"; sourceTree = "<group>"; };
585596
24A28AE61A767F92005235C5 /* libMMMarkdown-iOS.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libMMMarkdown-iOS.a"; path = "MMMarkdown/build/Debug-iphoneos/libMMMarkdown-iOS.a"; sourceTree = "<group>"; };
597+
24A47EA51BD5D9E9000B79D0 /* MRCTrendingViewModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MRCTrendingViewModel.h; sourceTree = "<group>"; };
598+
24A47EA61BD5D9E9000B79D0 /* MRCTrendingViewModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MRCTrendingViewModel.m; sourceTree = "<group>"; };
599+
24A47EB31BD5DA05000B79D0 /* MRCTrendingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MRCTrendingViewController.h; sourceTree = "<group>"; };
600+
24A47EB41BD5DA05000B79D0 /* MRCTrendingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MRCTrendingViewController.m; sourceTree = "<group>"; };
601+
24A47EB51BD5DA05000B79D0 /* MRCTrendingViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MRCTrendingViewController.xib; sourceTree = "<group>"; };
586602
24AF97691B01E19000E2A737 /* UISearchBar+MRCShowsCancelButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UISearchBar+MRCShowsCancelButton.h"; sourceTree = "<group>"; };
587603
24AF976A1B01E19000E2A737 /* UISearchBar+MRCShowsCancelButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UISearchBar+MRCShowsCancelButton.m"; sourceTree = "<group>"; };
588604
24AF977C1B02292700E2A737 /* MRCSearch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MRCSearch.h; sourceTree = "<group>"; };
@@ -850,6 +866,12 @@
850866
2489AD671B33AF0000D76523 /* MRCPublicReposViewController.h */,
851867
2489AD681B33AF0000D76523 /* MRCPublicReposViewController.m */,
852868
2489AD691B33AF0000D76523 /* MRCPublicReposViewController.xib */,
869+
24A47EB31BD5DA05000B79D0 /* MRCTrendingViewController.h */,
870+
24A47EB41BD5DA05000B79D0 /* MRCTrendingViewController.m */,
871+
24A47EB51BD5DA05000B79D0 /* MRCTrendingViewController.xib */,
872+
24143F121BD783F900555179 /* MRCTrendingSettingsViewController.h */,
873+
24143F131BD783F900555179 /* MRCTrendingSettingsViewController.m */,
874+
24143F141BD783F900555179 /* MRCTrendingSettingsViewController.xib */,
853875
);
854876
path = View;
855877
sourceTree = "<group>";
@@ -947,6 +969,10 @@
947969
248973771B3028AA00A867DE /* MRCUserDetailViewModel.m */,
948970
2489AD591B33AEE200D76523 /* MRCPublicReposViewModel.h */,
949971
2489AD5A1B33AEE200D76523 /* MRCPublicReposViewModel.m */,
972+
24A47EA51BD5D9E9000B79D0 /* MRCTrendingViewModel.h */,
973+
24A47EA61BD5D9E9000B79D0 /* MRCTrendingViewModel.m */,
974+
24143F041BD783D300555179 /* MRCTrendingSettingsViewModel.h */,
975+
24143F051BD783D300555179 /* MRCTrendingSettingsViewModel.m */,
950976
);
951977
path = ViewModel;
952978
sourceTree = "<group>";
@@ -1555,6 +1581,7 @@
15551581
24B4DA161A66B97900DDFA6C /* MRCReposTableViewCell.xib in Resources */,
15561582
2479C9411AAD39150057B681 /* icon-success.png in Resources */,
15571583
242D83591A7A5B0300F5F424 /* MRCSelectBranchOrTagViewController.xib in Resources */,
1584+
24A47EB71BD5DA05000B79D0 /* MRCTrendingViewController.xib in Resources */,
15581585
242D83661A7A7E1300F5F424 /* MRCGitTreeViewController.xib in Resources */,
15591586
245D62891AA8C73E00D7B081 /* MRCNetworkHeaderView.xib in Resources */,
15601587
24F120371AA7447A00A22D9A /* MRCSettingsViewController.xib in Resources */,
@@ -1572,6 +1599,7 @@
15721599
243688431B25E31A00D801D3 /* MRCUserListTableViewCell.xib in Resources */,
15731600
240D01391A654D300033CC86 /* MRCHomepageViewController.xib in Resources */,
15741601
240D013F1A654D300033CC86 /* MRCProfileViewController.xib in Resources */,
1602+
24143F161BD783F900555179 /* MRCTrendingSettingsViewController.xib in Resources */,
15751603
);
15761604
runOnlyForDeploymentPostprocessing = 0;
15771605
};
@@ -1706,6 +1734,7 @@
17061734
249E5B341B065D4600BFDEA1 /* TGRImageViewController.m in Sources */,
17071735
242D835C1A7A5B3B00F5F424 /* MRCSelectBranchOrTagViewModel.m in Sources */,
17081736
24DF45931A6BF97C00F23474 /* MRCStarredReposViewModel.m in Sources */,
1737+
24A47EA71BD5D9E9000B79D0 /* MRCTrendingViewModel.m in Sources */,
17091738
240D012B1A654D300033CC86 /* MRCRouter.m in Sources */,
17101739
240BFBD81AFF240B006ABC05 /* MRCSearchViewModel.m in Sources */,
17111740
24FF300D1B370CFA00915F8E /* CBStoreHouseRefreshControl.m in Sources */,
@@ -1720,6 +1749,7 @@
17201749
2458A2541B00EFBD00E9FB9B /* MRCRepoSettingsViewController.m in Sources */,
17211750
24F120271AA7445800A22D9A /* MRCSettingsViewModel.m in Sources */,
17221751
240D01321A654D300033CC86 /* MRCButton.m in Sources */,
1752+
24A47EB61BD5DA05000B79D0 /* MRCTrendingViewController.m in Sources */,
17231753
240D01461A654D300033CC86 /* MRCViewModel.m in Sources */,
17241754
249A8A3F1B54A30700E18582 /* OCTRef+MRCAdditions.m in Sources */,
17251755
249F35021A72A1A0008F1C2A /* MRCRepoReadmeTableViewCell.m in Sources */,
@@ -1740,6 +1770,7 @@
17401770
240D01441A654D300033CC86 /* MRCTabBarViewModel.m in Sources */,
17411771
240D013C1A654D300033CC86 /* MRCNewsViewController.m in Sources */,
17421772
249F34F81A72A197008F1C2A /* UIView+Borders.m in Sources */,
1773+
24143F151BD783F900555179 /* MRCTrendingSettingsViewController.m in Sources */,
17431774
24F120421AA7528A00A22D9A /* MRCAboutViewModel.m in Sources */,
17441775
24FDDEE51B31BDE20040B5C3 /* UINavigationItem+MRCBackBarButtonItem.m in Sources */,
17451776
24D32F0C1A77C879008E3994 /* MRCRepositoryServiceImpl.m in Sources */,
@@ -1753,6 +1784,7 @@
17531784
240D01291A654D300033CC86 /* OCTUser+MRCPersistence.m in Sources */,
17541785
240D012F1A654D300033CC86 /* MRCTabBarController.m in Sources */,
17551786
240D014B1A654D300033CC86 /* MRCHomepageViewModel.m in Sources */,
1787+
24143F061BD783D300555179 /* MRCTrendingSettingsViewModel.m in Sources */,
17561788
248973871B3028BC00A867DE /* MRCUserDetailViewController.m in Sources */,
17571789
24DF45891A6BF6CD00F23474 /* MRCReposViewController.m in Sources */,
17581790
2483A4521A69559000BA0594 /* UIImage+MRCOcticons.m in Sources */,

MVVMReactiveCocoa/MVVMReactiveCocoa-Info.plist

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,13 @@
183183
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
184184
<false/>
185185
</dict>
186+
<key>trending.codehub-app.com</key>
187+
<dict>
188+
<key>NSIncludesSubdomains</key>
189+
<true/>
190+
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
191+
<true/>
192+
</dict>
186193
</dict>
187194
</dict>
188195
<key>UIAppFonts</key>

MVVMReactiveCocoa/Model/MRCRepositoryService.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,6 @@
1212

1313
- (RACSignal *)requestRepositoryReadmeHTML:(OCTRepository *)repository reference:(NSString *)reference;
1414

15+
- (RACSignal *)requestTrendingRepositoriesSince:(NSString *)since language:(NSString *)language;
16+
1517
@end

MVVMReactiveCocoa/Model/MRCRepositoryServiceImpl.m

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,4 +46,59 @@ - (RACSignal *)requestRepositoryReadmeHTML:(OCTRepository *)repository reference
4646
setNameWithFormat:@"-requestRepositoryReadmeHTML: %@ reference: %@", repository, reference];
4747
}
4848

49+
- (RACSignal *)requestTrendingRepositoriesSince:(NSString *)since language:(NSString *)language {
50+
since = since.lowercaseString;
51+
language = language.lowercaseString;
52+
53+
if ([since isEqualToString:@"today"]) {
54+
since = @"daily";
55+
} else if ([since isEqualToString:@"this week"]) {
56+
since = @"weekly";
57+
} else if ([since isEqualToString:@"this month"]) {
58+
since = @"monthly";
59+
}
60+
61+
if ([language isEqualToString:@"all languages"]) {
62+
language = nil;
63+
}
64+
65+
return [[[RACSignal
66+
createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
67+
MKNetworkEngine *networkEngine = [[MKNetworkEngine alloc] initWithHostName:@"trending.codehub-app.com" apiPath:@"v2" customHeaderFields:nil];
68+
69+
MKNetworkOperation *operation = [networkEngine operationWithPath:@"trending"
70+
params:@{ @"since": since ?: @"",
71+
@"language": language ?: @"" }];
72+
73+
[operation addCompletionHandler:^(MKNetworkOperation *completedOperation) {
74+
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
75+
NSArray *JSONArray = completedOperation.responseJSON;
76+
if (JSONArray.count > 0) {
77+
NSError *error = nil;
78+
NSArray *repositories = [MTLJSONAdapter modelsOfClass:[OCTRepository class] fromJSONArray:JSONArray error:&error];
79+
80+
if (error) {
81+
NSLog(@"Error: %@", error);
82+
} else {
83+
[subscriber sendNext:repositories];
84+
}
85+
}
86+
[subscriber sendCompleted];
87+
});
88+
} errorHandler:^(MKNetworkOperation *completedOperation, NSError *error) {
89+
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
90+
[subscriber sendError:error];
91+
});
92+
}];
93+
94+
[networkEngine enqueueOperation:operation];
95+
96+
return [RACDisposable disposableWithBlock:^{
97+
[operation cancel];
98+
}];
99+
}]
100+
replayLazily]
101+
setNameWithFormat:@"-requestTrendingRepositoriesSince: %@ language: %@", since, language];
102+
}
103+
49104
@end

MVVMReactiveCocoa/Util/MRCRouter.m

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@ - (NSDictionary *)viewModelViewMappings {
5656
@"MRCStarredReposViewModel": @"MRCStarredReposViewController",
5757
@"MRCPublicReposViewModel": @"MRCPublicReposViewController",
5858
@"MRCNewsViewModel": @"MRCNewsViewController",
59+
@"MRCSearchViewModel": @"MRCSearchViewController",
60+
@"MRCTrendingViewModel": @"MRCTrendingViewController",
61+
@"MRCTrendingSettingsViewModel": @"MRCTrendingSettingsViewController",
5962
};
6063
}
6164

MVVMReactiveCocoa/View/BaseClass/MRCNavigationControllerStack.m

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,15 @@ @implementation MRCNavigationControllerStack
2121

2222
+ (instancetype)allocWithZone:(struct _NSZone *)zone {
2323
MRCNavigationControllerStack *navigationControllerStack = [super allocWithZone:zone];
24-
24+
2525
@weakify(navigationControllerStack)
2626
[[navigationControllerStack
2727
rac_signalForSelector:@selector(initWithServices:)]
2828
subscribeNext:^(id x) {
2929
@strongify(navigationControllerStack)
3030
[navigationControllerStack registerNavigationHooks];
3131
}];
32-
32+
3333
return navigationControllerStack;
3434
}
3535

@@ -67,44 +67,44 @@ - (void)registerNavigationHooks {
6767
viewController.hidesBottomBarWhenPushed = YES;
6868
[self.navigationControllers.lastObject pushViewController:viewController animated:[tuple.second boolValue]];
6969
}];
70-
70+
7171
[[(NSObject *)self.services
7272
rac_signalForSelector:@selector(popViewModelAnimated:)]
7373
subscribeNext:^(RACTuple *tuple) {
7474
@strongify(self)
7575
[self.navigationControllers.lastObject popViewControllerAnimated:[tuple.first boolValue]];
7676
}];
77-
77+
7878
[[(NSObject *)self.services
7979
rac_signalForSelector:@selector(popToRootViewModelAnimated:)]
8080
subscribeNext:^(RACTuple *tuple) {
8181
@strongify(self)
8282
[self.navigationControllers.lastObject popToRootViewControllerAnimated:[tuple.first boolValue]];
8383
}];
84-
84+
8585
[[(NSObject *)self.services
8686
rac_signalForSelector:@selector(presentViewModel:animated:completion:)]
8787
subscribeNext:^(RACTuple *tuple) {
8888
@strongify(self)
8989
UIViewController *viewController = (UIViewController *)[MRCRouter.sharedInstance viewControllerForViewModel:tuple.first];
90-
90+
9191
UINavigationController *presentingViewController = self.navigationControllers.lastObject;
9292
if (![viewController isKindOfClass:UINavigationController.class]) {
9393
viewController = [[MRCNavigationController alloc] initWithRootViewController:viewController];
9494
}
9595
[self pushNavigationController:(UINavigationController *)viewController];
96-
96+
9797
[presentingViewController presentViewController:viewController animated:[tuple.second boolValue] completion:tuple.third];
9898
}];
99-
99+
100100
[[(NSObject *)self.services
101101
rac_signalForSelector:@selector(dismissViewModelAnimated:completion:)]
102102
subscribeNext:^(RACTuple *tuple) {
103103
@strongify(self)
104104
[self popNavigationController];
105105
[self.navigationControllers.lastObject dismissViewControllerAnimated:[tuple.first boolValue] completion:tuple.second];
106106
}];
107-
107+
108108
[[(NSObject *)self.services
109109
rac_signalForSelector:@selector(resetRootViewModel:)]
110110
subscribeNext:^(RACTuple *tuple) {
@@ -117,7 +117,7 @@ - (void)registerNavigationHooks {
117117
viewController = [[MRCNavigationController alloc] initWithRootViewController:viewController];
118118
[self pushNavigationController:(UINavigationController *)viewController];
119119
}
120-
120+
121121
MRCSharedAppDelegate.window.rootViewController = viewController;
122122
}];
123123
}

MVVMReactiveCocoa/View/BaseClass/MRCViewController.m

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,12 @@ - (void)bindViewModel {
5858
// Double title view
5959
MRCDoubleTitleView *doubleTitleView = [[MRCDoubleTitleView alloc] init];
6060

61+
RAC(doubleTitleView.titleLabel, text) = RACObserve(self.viewModel, title);
62+
RAC(doubleTitleView.subtitleLabel, text) = RACObserve(self.viewModel, subtitle);
63+
6164
@weakify(self)
62-
[[[self
65+
[[self
6366
rac_signalForSelector:@selector(viewWillTransitionToSize:withTransitionCoordinator:)]
64-
startWith:nil]
6567
subscribeNext:^(id x) {
6668
@strongify(self)
6769
doubleTitleView.titleLabel.text = self.viewModel.title;

0 commit comments

Comments
 (0)