Browse Source

Fixes topBar.backButton.color - #4164

yogevbd 5 years ago
parent
commit
3a1637b056

+ 5
- 0
lib/ios/RNNNavigationControllerPresenter.m View File

26
 	[navigationController rnn_setNavigationBarLargeTitleVisible:[options.topBar.largeTitle.visible getWithDefaultValue:NO]];
26
 	[navigationController rnn_setNavigationBarLargeTitleVisible:[options.topBar.largeTitle.visible getWithDefaultValue:NO]];
27
 	[navigationController rnn_setNavigationBarLargeTitleFontFamily:[options.topBar.largeTitle.fontFamily getWithDefaultValue:nil] fontSize:[options.topBar.largeTitle.fontSize getWithDefaultValue:nil] color:[options.topBar.largeTitle.color getWithDefaultValue:nil]];
27
 	[navigationController rnn_setNavigationBarLargeTitleFontFamily:[options.topBar.largeTitle.fontFamily getWithDefaultValue:nil] fontSize:[options.topBar.largeTitle.fontSize getWithDefaultValue:nil] color:[options.topBar.largeTitle.color getWithDefaultValue:nil]];
28
 	[navigationController rnn_setNavigationBarFontFamily:[options.topBar.title.fontFamily getWithDefaultValue:nil] fontSize:[options.topBar.title.fontSize getWithDefaultValue:nil] color:[options.topBar.title.color getWithDefaultValue:nil]];
28
 	[navigationController rnn_setNavigationBarFontFamily:[options.topBar.title.fontFamily getWithDefaultValue:nil] fontSize:[options.topBar.title.fontSize getWithDefaultValue:nil] color:[options.topBar.title.color getWithDefaultValue:nil]];
29
+	[navigationController rnn_setBackButtonColor:[options.topBar.backButton.color getWithDefaultValue:nil]];
29
 }
30
 }
30
 
31
 
31
 - (void)applyOptionsOnWillMoveToParentViewController:(RNNNavigationOptions *)options {
32
 - (void)applyOptionsOnWillMoveToParentViewController:(RNNNavigationOptions *)options {
94
 		
95
 		
95
 	}
96
 	}
96
 	
97
 	
98
+	if (options.topBar.backButton.color.hasValue) {
99
+		[navigationController rnn_setBackButtonColor:options.topBar.backButton.color.get];
100
+	}
101
+	
97
 	[navigationController rnn_setNavigationBarLargeTitleFontFamily:[withDefault.topBar.largeTitle.fontFamily getWithDefaultValue:nil] fontSize:[withDefault.topBar.largeTitle.fontSize getWithDefaultValue:nil] color:[withDefault.topBar.largeTitle.color getWithDefaultValue:nil]];
102
 	[navigationController rnn_setNavigationBarLargeTitleFontFamily:[withDefault.topBar.largeTitle.fontFamily getWithDefaultValue:nil] fontSize:[withDefault.topBar.largeTitle.fontSize getWithDefaultValue:nil] color:[withDefault.topBar.largeTitle.color getWithDefaultValue:nil]];
98
 	
103
 	
99
 	[navigationController rnn_setNavigationBarFontFamily:[withDefault.topBar.title.fontFamily getWithDefaultValue:nil] fontSize:[withDefault.topBar.title.fontSize getWithDefaultValue:nil] color:[withDefault.topBar.title.color getWithDefaultValue:nil]];
104
 	[navigationController rnn_setNavigationBarFontFamily:[withDefault.topBar.title.fontFamily getWithDefaultValue:nil] fontSize:[withDefault.topBar.title.fontSize getWithDefaultValue:nil] color:[withDefault.topBar.title.color getWithDefaultValue:nil]];

+ 13
- 0
lib/ios/ReactNativeNavigationTests/RNNNavigationControllerPresenterTest.m View File

28
 	[_bindedViewController verify];
28
 	[_bindedViewController verify];
29
 }
29
 }
30
 
30
 
31
+- (void)testApplyOptions_shouldSetBackButtonColor_withDefaultValues {
32
+	[[_bindedViewController expect] rnn_setBackButtonColor:nil];
33
+	[self.uut applyOptions:self.options];
34
+	[_bindedViewController verify];
35
+}
36
+
37
+- (void)testApplyOptions_shouldSetBackButtonColor_withColor {
38
+	self.options.topBar.backButton.color = [[Color alloc] initWithValue:[UIColor redColor]];
39
+	[[_bindedViewController expect] rnn_setBackButtonColor:[UIColor redColor]];
40
+	[self.uut applyOptions:self.options];
41
+	[_bindedViewController verify];
42
+}
43
+
31
 - (void)testApplyOptionsOnWillMoveToParent_shouldSetBackButtonOnBindedViewController_withIcon {
44
 - (void)testApplyOptionsOnWillMoveToParent_shouldSetBackButtonOnBindedViewController_withIcon {
32
     Image* image = [[Image alloc] initWithValue:[UIImage new]];
45
     Image* image = [[Image alloc] initWithValue:[UIImage new]];
33
     self.options.topBar.backButton.icon = image;
46
     self.options.topBar.backButton.icon = image;

+ 2
- 0
lib/ios/UINavigationController+RNNOptions.h View File

30
 
30
 
31
 - (void)rnn_setNavigationBarLargeTitleFontFamily:(NSString *)fontFamily fontSize:(NSNumber *)fontSize color:(UIColor *)color;
31
 - (void)rnn_setNavigationBarLargeTitleFontFamily:(NSString *)fontFamily fontSize:(NSNumber *)fontSize color:(UIColor *)color;
32
 
32
 
33
+- (void)rnn_setBackButtonColor:(UIColor *)color;
34
+
33
 @end
35
 @end

+ 5
- 1
lib/ios/UINavigationController+RNNOptions.m View File

114
 	
114
 	
115
 	backItem.title = title ? title : lastViewControllerInStack.navigationItem.title;
115
 	backItem.title = title ? title : lastViewControllerInStack.navigationItem.title;
116
 	backItem.tintColor = color;
116
 	backItem.tintColor = color;
117
-	
117
+
118
 	lastViewControllerInStack.navigationItem.backBarButtonItem = backItem;
118
 	lastViewControllerInStack.navigationItem.backBarButtonItem = backItem;
119
 }
119
 }
120
 
120
 
121
+- (void)rnn_setBackButtonColor:(UIColor *)color {
122
+	self.navigationBar.tintColor = color;
123
+}
124
+
121
 - (void)rnn_setNavigationBarClipsToBounds:(BOOL)clipsToBounds {
125
 - (void)rnn_setNavigationBarClipsToBounds:(BOOL)clipsToBounds {
122
 	self.navigationBar.clipsToBounds = clipsToBounds;
126
 	self.navigationBar.clipsToBounds = clipsToBounds;
123
 }
127
 }