2012-06-29 2 views
0

Как я могу добавить эти контроллеры четыре вида на массивДобавить контроллеры вида на массив

self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]autorelease];  
ContainerViewController *container= [[[ContainerViewController alloc]init]autorelease]; 
self.window.rootViewController = container; 
NSMutableArray *controllers = [NSMutableArray array]; 
for (int i=0; i<23; i++) 
{ 
    First *first = [[First alloc] init]; 
    Second *second = [[Second alloc] init]; 
    Third *third = [[Third alloc] init]; 
    Fourth *fourth = [[Fourth alloc] init]; 

    [controllers addObject:first]; 
    [controllers addObject:second]; 
    [controllers addObject:third]; 
    [controllers addObject:fourth]; 
    } 

[container setSubViewControllers:controllers]; 
[window makeKeyAndVisible]; 
return YES; 

получаю желтое предупреждение, что метод экземпляра setSubViewController не найден по умолчанию типа возвращаемого значения для идентификатора

Спасибо за помощь.

ответ

1

набор это

- (void)setSubViewControllers:(NSArray *)subViewControllers; 

в .h из ContainerViewController это поможет вам избавиться от предупреждения, но я не уверен, что вы делаете логически, а также я бы посоветовал вам, чтобы освободить свои контроллеры просмотра суб в цикле, прежде чем распределять их снова ...

2

Чтобы добавить контроллеры представления в массив, нет необходимости в цикле for. Снимите петлю и добавить:

First *first = [[First alloc] init]; 
    Second *second = [[Second alloc] init]; 
    Third *third = [[Third alloc] init]; 
    Fourth *fourth = [[Fourth alloc] init]; 

    [controllers addObject:first]; 
    [controllers addObject:second]; 
    [controllers addObject:third]; 
    [controllers addObject:fourth]; 

Для контроллеров просмотра в container: setSubViewControllers не является правильным методом. Однако вы можете добавить контроллер детского представления с addChildViewController. Вы можете пропустить свой массив и вызвать [container addChildViewController: x # ViewController]; Что-то вроде:

for (id thisViewController in controllers) { 
thisViewController = (UIViewController *)thisViewController; 
[container addChildViewController:thisViewController]; 
} 

Примечание: Я не проверял этот код. Дайте мне знать, если у вас возникнут проблемы.

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