2011-12-23 6 views
0

Я пытаюсь повторно использовать некоторые из моих взглядов в своем раскадровке. Я начинаю с uitabbarcontroller и имеет несколько видов для каждой вкладки. Теперь я сбросил новый uitabbarcontroller в раскадровку, и я хочу подключить одну из ее вкладки к SAME viewcontroller, который подключен к исходной панели.uitabbarcontroller раскадровка: подключение viewcontroller, который уже подключен к другому uitabbarctrl

Можете ли вы использовать «viewcontrollers» в раскадровке? Или вам нужно создавать новые контроллеры view? Я предполагаю, что прежние работы, так как я могу сделать это еще там, где в раскадровке, выбрав «push». Это просто не работает с uitabbar, если я выбираю «отношения».

ok. Я нашел причину моего краха, и я думаю, что знаю, что происходит. Похоже, что если я подключу еще один uitabbarcontroller, то индексы для просмотров на первой вкладке прикручиваются. Что я делаю, чтобы получать ссылки на viewcontrollers в 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 не то, что класс (даже несмотря на то, раскадровка показывает, что это такое) ,

используя этот код на мой оригинальный контроллер TabBar

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. Как только я это сделаю, мой диспетчер просмотра исчез из цикла.

+0

я собираюсь воссоздать лучший вопрос с пустым проектом. – roocell

ответ

0

ok. он должен что-то делать (возможно) с тем, что я делаю UITabbar-> navcontroller-> uitableview

Когда я добавляю свою вторую панель и создаю свой собственный навигатор и подключаю ее. Затем «повторно используйте» исходное представление таблицы, подключившись с navcontroller к tableview. Это не похоже на оригинальную панель.

вот скриншот моей раскадровки http://www.thumbgenius.dynalias.com/tabbar_vc_reuse.png

0

Это определенно возможно. Вы уверены, что соединение сделано с видом?

Прошу прощения; это было непонятно. Когда вы держите управление и перетаскиваете синюю линию соединения, убедитесь, что вы подключаетесь к самому представлению (не что иное).

Вы должны иметь возможность создать эту связь между UITabBarController и представлением, даже если он совместно используется другим UITabBarController.

Что он покажет вам, когда вы пытаетесь?

+0

спасибо за помощь. Я перетаскиваю в uitableviewcontroller. Это дает мне 4 варианта: отношения, толчок, модель, обычай. Я предполагаю, что я выбираю отношения, потому что я хочу, чтобы этот контроллер просмотра был VC для моей вкладки. он сразу же сработает - я полагаю, это когда он загружает раскадровку. – roocell

+0

он отлично работает, если я сбросил новый VC на раскадровку и использовал это. но не тот, который уже используется. – roocell

+0

Возможно, я должен был что-то прояснить. У меня есть uitabbar-> navcontroller-> uitableview. может ли это иметь какое-то отношение к находящемуся там navcontroller? (я попытался подключиться как к navcontroller, так и к tableview. – roocell

Смежные вопросы