Я пытаюсь повторно использовать некоторые из моих представлений в раскадровке.Я начинаю с контроллера uitabbar, и у меня есть несколько представлений, связанных для каждой вкладки.Теперь я поместил НОВЫЙ контроллер uitabbar в раскадровку, и я хочу подключить одну из его вкладок к ТО ЖЕ ВИДОМУ контроллеру, который подключен к исходной панели вкладок.
Можете ли вы так же повторно использовать контроллеры представления в раскадровке?Или вам нужно создавать новые viewcontrollers?Я предполагаю, что первые работы, как я могу сделать это в другом месте в раскадровке, выбрав «толчок».Это просто не работает с uitabbar, если я выбираю «отношения».
ок.Я нашел причину своего крушения и думаю, что знаю, что происходит.Похоже, что если я подключу другой контроллер uitabbar, то индексы для представлений на первой панели вкладок будут испорчены.Что я делаю, чтобы получить ссылки на контроллеры представления в панели 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 не тот класс (хотя раскадровка показывает, что онis).
использование этого кода на моем исходном контроллере вкладок
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 выйдет из цикла.