0

В моем приложении iOS количество элементов табуляции не будет исправлено. Будет принято решение о времени выполнения. Предположим, есть 4 вкладки, которые мне нужно будет показать, тогда мне нужно будет создать 4 экземпляра того же UIViewController времени выполнения (внутри 4 разных навигационных контроллера).Создайте несколько экземпляров UIViewController

Вот что мы делаем, чтобы получить доступ к определенному контроллеру вида:

id controller1 = [self.storyboard instantiateViewControllerWithIdentifier:@"MyViewController"]; 
[controller1 setTitle:@"Football"]; 
UINavigationController *nav1 = [[UINavigationController alloc] initWithRootViewController:controller1]; 
[arrControllers insertObject:nav1 atIndex:0]; 

То, что я хочу сделать, это иметь 4 экземпляра навигационного контроллера, имеющего экземпляр одного контроллера представления. Все 4 диспетчера представлений будут выполнять одну и ту же функцию (на одной из них будут показаны видеофильмы о футболе, в одном из них будет показано видео в баскетболе). Средства, в доске объявлений, MyViewController - это один контроллер вида, но необходимо создать различные экземпляры этого MyViewController

Как я могу это сделать? Единственная причина, по которой мне придется это делать, - вкладки tabbar не будут исправлены, они будут динамическими.

Пожалуйста, поделитесь ничего полезно ..

+1

нужен разные экземпляры MyViewController, так называют instantiateViewControllerWithIdentifier четыре раза, я думаю, у меня, возможно, не было четкого вопроса. –

+0

My view Контроллер один в раскадровке, который будет отображаться в Tabs как разные контроллеры. Может быть 5 в соответствии с ответом сервера. – NSPratik

+0

Я сомневаюсь, что это поддерживается. 'UIViewController' имеет свойство' navigationController', предназначенное для возврата ОДНОГО навигационного контроллера. –

ответ

1

Вид Контроллер может быть включен только в один другой контроллер представления в то время. Даже если это не так, я сомневаюсь, что вам нужен тот же самый экземпляр через вкладки, так как вы будете обременены изменением его состояния каждый раз, когда пользователь изменит вкладку.

Чем проще установка для создания уникальных навигационных VCS с уникальными корнями в ответ на данные с сервера, например ...

// you've figured out here that you need four tabs, based on 
// a response from the server like... 
NSArray *tabNames = @[ @"one", @"two", @"three" @"four"]; // from the server 
NSArray *tabs = [@[] mutableCopy]; 
for (NSString *tabName in tabNames) { 
    MyViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"MyViewController"]; 
    vc.title = tabName; 
    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc]; 
    [tabs addObject:nav]; 
} 
// here, tabs is an array of view controllers that can 
// be assigned to the tabBar viewControllers property 
+0

Спасибо @danh, позвольте мне попробовать .. – NSPratik

+0

Это было полезно для меня. Я собираюсь это сделать. Принято.. – NSPratik

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