diff --git a/MVMCoreUI/Containers/TabBarController/MVMCoreUITabBarPageControlViewController.h b/MVMCoreUI/Containers/TabBarController/MVMCoreUITabBarPageControlViewController.h index 7bfaced4..bf88ea3e 100644 --- a/MVMCoreUI/Containers/TabBarController/MVMCoreUITabBarPageControlViewController.h +++ b/MVMCoreUI/Containers/TabBarController/MVMCoreUITabBarPageControlViewController.h @@ -25,10 +25,7 @@ - (nullable instancetype)initWithViewController:(nonnull UIViewController *)viewController loadObject:(nullable MVMCoreLoadObject *)loadObject tabsInfo:(nonnull NSArray *)tabsInfo shoudEnableSwipeGestures:(BOOL)enableSwipeGestures; // For client driven architecture -- (nullable instancetype)initWithViewControllers:(nonnull NSArray *>*)viewControllers tabNames:(nonnull NSArray *)tabNames loadObject:(nullable MVMCoreLoadObject *)loadObject tabsInfo:(nonnull NSArray *)tabsInfo; -- (nullable instancetype)initWithViewControllers:(nonnull NSArray *>*)viewControllers tabNames:(nonnull NSArray *)tabNames tabsInfo:(nonnull NSArray *)tabsInfo; -- (nullable instancetype)initWithViewControllers:(nonnull NSArray *>*)viewControllers tabNames:(nonnull NSArray *)tabNames tabsInfo:(nonnull NSArray *)tabsInfo shoudEnableSwipeGestures:(BOOL)enableSwipeGestures; -- (nullable instancetype)initWithViewControllers:(nonnull NSArray *>*)viewControllers tabNames:(nonnull NSArray *)tabNames tabsInfo:(nonnull NSArray *)tabsInfo selectedIndex:(NSUInteger)selectedIndex shoudEnableSwipeGestures:(BOOL)enableSwipeGestures; +- (nullable instancetype)initWithViewControllers:(nonnull NSArray *>*)viewControllers tabNames:(nonnull NSArray *)tabNames loadObject:(nullable MVMCoreLoadObject *)loadObject tabsInfo:(nonnull NSArray *)tabsInfo selectedIndex:(NSUInteger)selectedIndex shoudEnableSwipeGestures:(BOOL)enableSwipeGestures; // Returns the number of tabs - (NSInteger)numberOfTabs; diff --git a/MVMCoreUI/Containers/TabBarController/MVMCoreUITabBarPageControlViewController.m b/MVMCoreUI/Containers/TabBarController/MVMCoreUITabBarPageControlViewController.m index 96d269c3..1a101942 100644 --- a/MVMCoreUI/Containers/TabBarController/MVMCoreUITabBarPageControlViewController.m +++ b/MVMCoreUI/Containers/TabBarController/MVMCoreUITabBarPageControlViewController.m @@ -71,13 +71,13 @@ return self; } -- (nullable instancetype)initWithViewControllers:(nonnull NSArray *>*)viewControllers tabNames:(nonnull NSArray *)tabNames loadObject:(nullable MVMCoreLoadObject *)loadObject tabsInfo:(nonnull NSArray *)tabsInfo { - UIViewController *viewController = [viewControllers firstObject]; - if (self = [self initWithViewController:viewController loadObject:loadObject tabsInfo:tabsInfo]) { +- (nullable instancetype)initWithViewControllers:(nonnull NSArray *>*)viewControllers tabNames:(nonnull NSArray *)tabNames loadObject:(nullable MVMCoreLoadObject *)loadObject tabsInfo:(nonnull NSArray *)tabsInfo selectedIndex:(NSUInteger)selectedIndex shoudEnableSwipeGestures:(BOOL)enableSwipeGestures { + UIViewController *viewController = [viewControllers objectAtIndex:selectedIndex ofType:[UIViewController class]]; + if (self = [self initWithViewController:viewController loadObject:loadObject tabsInfo:tabsInfo shoudEnableSwipeGestures:enableSwipeGestures]) { self.viewControllers = [viewControllers mutableCopy]; self.tabNames = tabNames; self.clientDriven = YES; - self.selectedIndex = 0; + self.selectedIndex = selectedIndex; for (UIViewController *viewController in self.viewControllers) { if ([viewController respondsToSelector:@selector(setManager:)]) { ((UIViewController *)viewController).manager = self; @@ -87,41 +87,6 @@ return self; } -- (nullable instancetype)initWithViewControllers:(nonnull NSArray *>*)viewControllers tabNames:(nonnull NSArray *)tabNames tabsInfo:(nonnull NSArray *)tabsInfo { - MFViewController *viewController = [viewControllers firstObject]; - if (self = [self initWithViewController:viewController loadObject:viewController.loadObject tabsInfo:tabsInfo]) { - self.viewControllers = [viewControllers mutableCopy]; - self.tabNames = tabNames; - self.clientDriven = YES; - self.selectedIndex = 0; - for (MFViewController *viewController in self.viewControllers) { - viewController.manager = self; - } - } - return self; -} - -- (nullable instancetype)initWithViewControllers:(nonnull NSArray *>*)viewControllers tabNames:(nonnull NSArray *)tabNames tabsInfo:(nonnull NSArray *)tabsInfo selectedIndex:(NSUInteger)selectedIndex shoudEnableSwipeGestures:(BOOL)enableSwipeGestures { - MFViewController *viewController = [viewControllers objectAtIndex:selectedIndex ofType:[MFViewController class]]; - if (self = [self initWithViewController:viewController loadObject:viewController.loadObject tabsInfo:tabsInfo shoudEnableSwipeGestures:enableSwipeGestures]) { - self.viewControllers = [viewControllers mutableCopy]; - self.tabNames = tabNames; - self.clientDriven = YES; - self.selectedIndex = selectedIndex; - for (MFViewController *viewController in self.viewControllers) { - viewController.manager = self; - } - } - return self; -} - -- (nullable instancetype)initWithViewControllers:(nonnull NSArray *)viewControllers tabNames:(nonnull NSArray *)tabNames tabsInfo:(nonnull NSArray *)tabsInfo shoudEnableSwipeGestures:(BOOL)enableSwipeGestures { - if (self = [self initWithViewControllers:viewControllers tabNames:tabNames tabsInfo:tabsInfo]) { - self.shouldEnableSwipeGestures = enableSwipeGestures; - } - return self; -} - #pragma mark - Pass Through - (BOOL)isMasterInitiallyAccessible {