Я попал в интересную ситуацию, у меня есть приложение для iPhone с 3 UITableViewController
с, каждый из которых отображает более или менее одинаковые данные (можно сказать, что это вопрос фильтрации). На сегодняшний день у меня было 3 отдельных NIB для этого, каждый со своим собственным контроллером, кроме того, UITableViewController
были внутри UINavigationController
ради кнопок сверху.
Теперь, чтобы оптимизировать приложение и уменьшить его занимаемую площадь, я упаковал всю логику в один общий контроллер (UITableViewController
) и оставил только один NIB на месте. Общий контроллер позаботится о фильтрации данных и указании на правильные данные.
Итак, я загружаю такой же общий контроллер на 3 из навигационных контроллеров:
navControllerA = [[UINavigationController alloc] initWithRootViewController: commonTableController];
и добавил эти контроллеры навигации в UITabBarController
:
navigationControllersArray = [NSArray arrayWithObjects: navControllerA, navControllerB, navControllerC, nil];
[tabController setViewControllers:[NSArray arrayWithArray:navigationControllersArray]];
Теперь все в порядке, отображаются вкладки, отображаются таблицы. Но как только вы дотронетесь до следующего UITabBarItem
и вернетесь к предыдущему, которое UITableViewController
не показывает, вы сможете увидеть только UIWindow
на его месте. UITableViewController
остается видимым только для последних нажатых UITabBarItem
.
Существует ли какой-то механизм загрузки вида UITabBar
, о котором я не знаю?