Browse Source

fixed bottomTabs options with no stack

yogevbd 6 years ago
parent
commit
b8221b710f

+ 1
- 1
lib/ios/RNNBackButtonOptions.h View File

2
 
2
 
3
 @interface RNNBackButtonOptions : RNNOptions
3
 @interface RNNBackButtonOptions : RNNOptions
4
 
4
 
5
-@property (nonatomic, strong) NSDictionary* image;
5
+@property (nonatomic, strong) NSDictionary* icon;
6
 @property (nonatomic, strong) NSNumber* visible;
6
 @property (nonatomic, strong) NSNumber* visible;
7
 @property (nonatomic, strong) NSString* title;
7
 @property (nonatomic, strong) NSString* title;
8
 @property (nonatomic, strong) NSString* transition;
8
 @property (nonatomic, strong) NSString* transition;

+ 2
- 2
lib/ios/RNNBackButtonOptions.m View File

3
 @implementation RNNBackButtonOptions
3
 @implementation RNNBackButtonOptions
4
 
4
 
5
 - (void)applyOn:(UIViewController *)viewController {
5
 - (void)applyOn:(UIViewController *)viewController {
6
-	if (self.image) {
7
-		UIImage *image = self.image ? [RCTConvert UIImage:self.image] : nil;
6
+	if (self.icon) {
7
+		UIImage *image = self.icon ? [RCTConvert UIImage:self.icon] : nil;
8
 		[viewController.navigationController.navigationBar setBackIndicatorImage:image];
8
 		[viewController.navigationController.navigationBar setBackIndicatorImage:image];
9
 		[viewController.navigationController.navigationBar setBackIndicatorTransitionMaskImage:image];
9
 		[viewController.navigationController.navigationBar setBackIndicatorTransitionMaskImage:image];
10
 	}
10
 	}

+ 2
- 2
lib/ios/RNNControllerFactory.m View File

145
 
145
 
146
 	NSMutableArray* controllers = [NSMutableArray new];
146
 	NSMutableArray* controllers = [NSMutableArray new];
147
 	for (NSDictionary *child in node.children) {
147
 	for (NSDictionary *child in node.children) {
148
-		UIViewController* childVc = (UIViewController*)[self fromTree:child];
149
-		RNNRootViewController* rootView = (RNNRootViewController *)childVc.childViewControllers.firstObject;
148
+		UIViewController<RNNRootViewProtocol>* childVc = [self fromTree:child];
149
+		RNNRootViewController* rootView = (RNNRootViewController *)[childVc getLeafViewController];
150
 		[rootView applyTabBarItem];
150
 		[rootView applyTabBarItem];
151
 		
151
 		
152
 		[controllers addObject:childVc];
152
 		[controllers addObject:childVc];

+ 12
- 12
lib/ios/RNNNavigationController.m View File

8
 	return self.viewControllers.lastObject.supportedInterfaceOrientations;
8
 	return self.viewControllers.lastObject.supportedInterfaceOrientations;
9
 }
9
 }
10
 
10
 
11
-- (UIViewController<RNNRootViewProtocol>*)getTopViewController {
12
-	return ((UIViewController<RNNRootViewProtocol>*)self.topViewController);
13
-}
14
-
15
 - (UINavigationController *)navigationController {
11
 - (UINavigationController *)navigationController {
16
 	return self;
12
 	return self;
17
 }
13
 }
18
 
14
 
19
 - (BOOL)isCustomViewController {
15
 - (BOOL)isCustomViewController {
20
-	return [self.getTopViewController isCustomViewController];
16
+	return [self.getLeafViewController isCustomViewController];
21
 }
17
 }
22
 
18
 
23
 - (void)mergeOptions:(RNNOptions *)options {
19
 - (void)mergeOptions:(RNNOptions *)options {
24
-	[self.getTopViewController mergeOptions:options];
20
+	[self.getLeafViewController mergeOptions:options];
25
 }
21
 }
26
 
22
 
27
 - (UIStatusBarStyle)preferredStatusBarStyle {
23
 - (UIStatusBarStyle)preferredStatusBarStyle {
28
-	return self.getTopViewController.preferredStatusBarStyle;
24
+	return self.getLeafViewController.preferredStatusBarStyle;
29
 }
25
 }
30
 
26
 
31
 - (UIModalPresentationStyle)modalPresentationStyle {
27
 - (UIModalPresentationStyle)modalPresentationStyle {
32
-	return self.getTopViewController.modalPresentationStyle;
28
+	return self.getLeafViewController.modalPresentationStyle;
33
 }
29
 }
34
 
30
 
35
 - (void)applyModalOptions {
31
 - (void)applyModalOptions {
36
-	[self.getTopViewController applyModalOptions];
32
+	[self.getLeafViewController applyModalOptions];
37
 }
33
 }
38
 
34
 
39
 - (UIViewController *)popViewControllerAnimated:(BOOL)animated {
35
 - (UIViewController *)popViewControllerAnimated:(BOOL)animated {
41
 }
37
 }
42
 
38
 
43
 - (NSString *)componentId {
39
 - (NSString *)componentId {
44
-	return _componentId ? _componentId : self.getTopViewController.componentId;
40
+	return _componentId ? _componentId : self.getLeafViewController.componentId;
45
 }
41
 }
46
 
42
 
47
 - (nullable id <UIViewControllerAnimatedTransitioning>)animationControllerForPresentedController:(UIViewController *)presented presentingController:(UIViewController *)presenting sourceController:(UIViewController *)source {
43
 - (nullable id <UIViewControllerAnimatedTransitioning>)animationControllerForPresentedController:(UIViewController *)presented presentingController:(UIViewController *)presenting sourceController:(UIViewController *)source {
53
 }
49
 }
54
 
50
 
55
 - (RNNNavigationOptions *)options {
51
 - (RNNNavigationOptions *)options {
56
-	return self.getTopViewController.options;
52
+	return self.getLeafViewController.options;
53
+}
54
+
55
+- (UIViewController *)getLeafViewController {
56
+	return ((UIViewController<RNNRootViewProtocol>*)self.topViewController);
57
 }
57
 }
58
 
58
 
59
 - (void)waitForReactViewRender:(BOOL)wait perform:(RNNReactViewReadyCompletionBlock)readyBlock {
59
 - (void)waitForReactViewRender:(BOOL)wait perform:(RNNReactViewReadyCompletionBlock)readyBlock {
60
-	[self.getTopViewController waitForReactViewRender:wait perform:readyBlock];
60
+	[self.getLeafViewController waitForReactViewRender:wait perform:readyBlock];
61
 }
61
 }
62
 
62
 
63
 - (UIViewController *)childViewControllerForStatusBarStyle {
63
 - (UIViewController *)childViewControllerForStatusBarStyle {

+ 4
- 0
lib/ios/RNNRootViewController.m View File

99
 	}
99
 	}
100
 }
100
 }
101
 
101
 
102
+- (UIViewController *)getLeafViewController {
103
+	return self;
104
+}
105
+
102
 - (void)onReactViewReady:(RNNReactViewReadyCompletionBlock)readyBlock {
106
 - (void)onReactViewReady:(RNNReactViewReadyCompletionBlock)readyBlock {
103
 	if (self.isCustomViewController) {
107
 	if (self.isCustomViewController) {
104
 		readyBlock();
108
 		readyBlock();

+ 1
- 0
lib/ios/RNNRootViewProtocol.h View File

15
 @required
15
 @required
16
 - (NSString *)componentId;
16
 - (NSString *)componentId;
17
 - (void)waitForReactViewRender:(BOOL)wait perform:(RNNReactViewReadyCompletionBlock)readyBlock;
17
 - (void)waitForReactViewRender:(BOOL)wait perform:(RNNReactViewReadyCompletionBlock)readyBlock;
18
+- (UIViewController<RNNRootViewProtocol> *)getLeafViewController;
18
 
19
 
19
 @end
20
 @end
20
 
21
 

+ 4
- 0
lib/ios/RNNSideMenuChildVC.m View File

39
 	[self.child waitForReactViewRender:wait perform:readyBlock];
39
 	[self.child waitForReactViewRender:wait perform:readyBlock];
40
 }
40
 }
41
 
41
 
42
+- (UIViewController *)getLeafViewController {
43
+	return self.child;
44
+}
45
+
42
 - (UIStatusBarStyle)preferredStatusBarStyle {
46
 - (UIStatusBarStyle)preferredStatusBarStyle {
43
 	return self.child.preferredStatusBarStyle;
47
 	return self.child.preferredStatusBarStyle;
44
 }
48
 }

+ 4
- 0
lib/ios/RNNSideMenuController.m View File

89
 	}
89
 	}
90
 }
90
 }
91
 
91
 
92
+- (UIViewController *)getLeafViewController {
93
+	return self.center;
94
+}
95
+
92
 - (void)mergeOptions:(RNNOptions *)options {
96
 - (void)mergeOptions:(RNNOptions *)options {
93
 	[self.center mergeOptions:options];
97
 	[self.center mergeOptions:options];
94
 }
98
 }

+ 4
- 0
lib/ios/RNNSplitViewController.m View File

33
 - (void)optionsUpdated {
33
 - (void)optionsUpdated {
34
 }
34
 }
35
 
35
 
36
+- (UIViewController *)getLeafViewController {
37
+	return self;
38
+}
39
+
36
 - (void)waitForReactViewRender:(BOOL)wait perform:(RNNReactViewReadyCompletionBlock)readyBlock {
40
 - (void)waitForReactViewRender:(BOOL)wait perform:(RNNReactViewReadyCompletionBlock)readyBlock {
37
 	readyBlock();
41
 	readyBlock();
38
 }
42
 }

+ 4
- 0
lib/ios/RNNTabBarController.m View File

53
 	return [((UIViewController<RNNRootViewProtocol>*)self.selectedViewController) options];
53
 	return [((UIViewController<RNNRootViewProtocol>*)self.selectedViewController) options];
54
 }
54
 }
55
 
55
 
56
+- (UIViewController *)getLeafViewController {
57
+	return ((UIViewController<RNNRootViewProtocol>*)self.selectedViewController);
58
+}
59
+
56
 - (NSString *)componentId {
60
 - (NSString *)componentId {
57
 	return ((UIViewController<RNNRootViewProtocol>*)self.selectedViewController).componentId;
61
 	return ((UIViewController<RNNRootViewProtocol>*)self.selectedViewController).componentId;
58
 }
62
 }

+ 6
- 0
lib/ios/RNNTopTabsViewController.m View File

76
 	return _currentViewController.componentId;
76
 	return _currentViewController.componentId;
77
 }
77
 }
78
 
78
 
79
+#pragma mark RNNRootViewProtocol
80
+
79
 - (void)waitForReactViewRender:(BOOL)wait perform:(RNNReactViewReadyCompletionBlock)readyBlock {
81
 - (void)waitForReactViewRender:(BOOL)wait perform:(RNNReactViewReadyCompletionBlock)readyBlock {
80
 	[_currentViewController waitForReactViewRender:wait perform:readyBlock];
82
 	[_currentViewController waitForReactViewRender:wait perform:readyBlock];
81
 }
83
 }
82
 
84
 
85
+- (UIViewController *)getLeafViewController {
86
+	return _currentViewController;
87
+}
88
+
83
 @end
89
 @end