Я пытаюсь повторно использовать часть своего представления в раскадровке. Я начинаю с uitabbarcontroller и подключаю несколько представлений для каждой вкладки. Теперь я поместил НОВЫЙ uitabbarcontroller в раскадровку, и я хочу подключить одну из его вкладок к ЖЕСТКОМУ viewcontroller, который подключен к исходной панели вкладок.
Можете ли вы таким образом «повторно использовать» контроллеры представления в раскадровке? Или вам нужно создать новые контроллеры просмотра? Я предполагаю, что первое работает, так как я могу сделать это в другом месте раскадровки, выбрав «push». Если я выберу «отношения», это просто не сработает с uitabbar.
в порядке. Я нашел причину своего крушения и думаю, что знаю, что происходит. Похоже, что если я подключу другой uitabbarcontroller, то индексы для представлений на первой панели вкладок будут испорчены. Что я делаю для получения ссылок на контроллеры просмотра в uitabbar, используя
UINavigationController* ar_nav=[self.viewControllers objectAtIndex:1];
_artvc = [ar_nav.viewControllers objectAtIndex:0];
if (![_artvc isKindOfClass:[ArtistTableViewController class]])
{
TGLog(@"ERR wrong class! %@", [_artvc class]);
exit(0);
}
Как только я подключаю вторую uitabbar, оказывается, что индекс 1 не тот класс (хотя раскадровка показывает, что это так).
используя этот код на моем исходном контроллере панели вкладок
UINavigationController* n;
for (n in self.viewControllers)
{
UIViewController* vc=[n.viewControllers objectAtIndex:0];
TGLog(@"%@", [vc class]);
if ([vc isKindOfClass:[ArtistTableViewController class]])
{
_artvc = (ArtistTableViewController*)vc;
}
if ([vc isKindOfClass:[SongsTableViewController class]])
{
_stvc = (SongsTableViewController*)vc;
}
if ([vc isKindOfClass:[AlbumTableViewController class]])
{
_altvc = (AlbumTableViewController*)vc;
}
}
работает нормально пока не подключу второй uitabbar. Как только я это сделаю, мой viewcontroller уйдет из цикла.