Подавить moreNavigationController в пользовательском UITabBarController

Я реализовал пользовательское решение UITabBar для проекта. По сути, если есть более 5 элементов, я использую scrollView, который позволит пользователю прокручивать дополнительные элементы вкладки и подавляет кнопку «больше». Подобный внешний вид можно увидеть в приложении Weather Channel.

Каждый элемент панели вкладок соответствует UINavigationController, который управляет стеком представлений для каждой вкладки. Проблема, с которой я сталкиваюсь, заключается в том, что у меня более 5 элементов вкладки, начиная с вкладки 5 и далее, неправильно поддерживается стек навигации. Похоже, что moreNavigationController убивает стек навигации каждый раз, когда вы возвращаетесь на эту вкладку, и вы снова переходите на начальную страницу.

Я переопределил метод setSelectedViewController следующим образом:

<code>- (void) setSelectedViewController:(UIViewController *)selectedViewController {
    [super setSelectedViewController:selectedViewController];
    if ([self.moreNavigationController.viewControllers count] > 1) {
        self.moreNavigationController.viewControllers = [[NSArray alloc] initWithObjects:self.moreNavigationController.visibleViewController, nil];
    }
}
</code>

Этот код удалит функциональность More на левой навигационной кнопке, но не решит проблему поддержания стека навигации. Все остальные вкладки работают нормально. Я могу просмотреть несколько представлений, и после того, как я уйду и вернусь к этой вкладке, стек сохранится. Я понимаю, что это сложный вопрос, поэтому, пожалуйста, дайте мне знать, если есть области, где я могу внести ясность. Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос