diff --git a/lib/ios/RNNTabBarController.m b/lib/ios/RNNTabBarController.m index 8ead01e4200..8443418081a 100644 --- a/lib/ios/RNNTabBarController.m +++ b/lib/ios/RNNTabBarController.m @@ -31,6 +31,7 @@ - (instancetype)initWithLayoutInfo:(RNNLayoutInfo *)layoutInfo self.presenter = presenter; [self.presenter bindViewController:self]; [self setViewControllers:childViewControllers]; + [self.presenter applyOptionsOnInit:self.options]; return self; } diff --git a/lib/ios/RNNTabBarPresenter.m b/lib/ios/RNNTabBarPresenter.m index b43250ac0f4..62884292329 100644 --- a/lib/ios/RNNTabBarPresenter.m +++ b/lib/ios/RNNTabBarPresenter.m @@ -3,6 +3,11 @@ @implementation RNNTabBarPresenter +- (void)applyOptionsOnInit:(RNNNavigationOptions *)initialOptions { + UITabBarController* tabBarController = self.bindedViewController; + [tabBarController rnn_setCurrentTabIndex:[initialOptions.bottomTabs.currentTabIndex getWithDefaultValue:0]]; +} + - (void)applyOptions:(RNNNavigationOptions *)options { UITabBarController* tabBarController = self.bindedViewController; diff --git a/lib/ios/ReactNativeNavigationTests/RNNTabBarPresenterTest.m b/lib/ios/ReactNativeNavigationTests/RNNTabBarPresenterTest.m index 107edf12643..b6c269c324d 100644 --- a/lib/ios/ReactNativeNavigationTests/RNNTabBarPresenterTest.m +++ b/lib/ios/ReactNativeNavigationTests/RNNTabBarPresenterTest.m @@ -33,7 +33,7 @@ - (void)testApplyOptions_shouldSetDefaultEmptyOptions { [self.bindedViewController verify]; } -- (void)testApplyOptions_shouldSetInitialOptions { +- (void)testApplyOptions_shouldApplyOptions { RNNNavigationOptions* initialOptions = [[RNNNavigationOptions alloc] initEmptyOptions]; initialOptions.bottomTabs.testID = [[Text alloc] initWithValue:@"testID"]; initialOptions.bottomTabs.backgroundColor = [[Color alloc] initWithValue:[UIColor redColor]]; @@ -53,4 +53,13 @@ - (void)testApplyOptions_shouldSetInitialOptions { [self.bindedViewController verify]; } +- (void)testApplyOptions_shouldApplyOptionsOnInit { + RNNNavigationOptions* initialOptions = [[RNNNavigationOptions alloc] initEmptyOptions]; + initialOptions.bottomTabs.currentTabIndex = [[IntNumber alloc] initWithValue:@(1)]; + [[self.bindedViewController expect] rnn_setCurrentTabIndex:1]; + + [self.uut applyOptionsOnInit:initialOptions]; + [self.bindedViewController verify]; +} + @end