У меня есть следующая настройка в моем приложении: Мой контроллер начального представления - это UITabBarController. вкладки:Использование нескольких копий одного и того же контроллера представления в раскадровке
1) UINavigationController-> PostListVC
2) UINavigationController-> CategoriesListVC
3) UINavigationController-> PostListVC
4) UINavigationController-> PostListVC
5) UINavigationController-> MoreViewController
Как вы можете видеть, 3 вкладки содержат один и тот же класс viewController, но не должны содержать один и тот же объект контроллера представления. В представлении будет отображаться различная информация на основе информации, полученной им из AppDelegate.
Что я сделал, я создал 5 UINavigationControllers, связал их с uitabbarcontroller, а затем создал rootViewController для 3 из них в том же PostListVC View - таким образом мне не нужно поддерживать 3 проекта одного и того же вида.
Проблема, которую я получаю, заключается в том, что только первый PostListVC создается правильно (самый левый на панели вкладок) - другие вкладки, указывающие на PostListVC, просто показывают черный экран.
Я попытался проиллюстрировать то, как я провод-вверх раскадровку с использованием 3 вкладок примера:
Как вы можете видеть, как верхний и нижние наиболее-большинство просмотров подключены к PostListVC.
Я не знаю, в чем проблема. Я предполагаю, что неправильно использую раскадровки.
Кто-нибудь знает, как я могу это исправить?
Спасибо!
EDIT: Я создал простой, пример проекта (Xcode 5), что illustartes этот вопрос:
http://www.speedyshare.com/Srwfg/TabBarProblem.zip
EDIT 2: модифицированная версия примера, показывая проблема с предлагаемым решением: http://speedy.sh/JkdGC/TabBarProblem-2.zip
Невозможно создать различные tabBarItems с помощью этого метод, и нет никакого способа разместить barItems, чтобы они не были в строке - даже если вы попытаетесь настроить порядок segues.
Недостаточно информации здесь для кого-то, чтобы помочь, но ничего на изображении не указывает на ошибку. Я предлагаю добавить некоторые 'NSLog' каждому контроллеру View (вероятно, 'viewDidLoad'), чтобы удостовериться, что правильная информация передана и что создается экземпляр правильного класса UIViewController. Обратите внимание, что каждый из них должен быть уникальным. Это единственный способ отладить что-то такое сложное. –
Оба вида viewDidLoad и loadView вызываются только один раз. PostListVC, вероятно, не создается корректно, но я не знаю почему. – Niv
Несколько вещей для проверки: правильно ли установлен класс внутри IB? Что говорит '' NSLog's '' в PostListVC? Является ли соединение, связанное в IB? Не уверен, что смогу помочь за эти вопросы. –