从Array中获取未定义数量的ViewController

时间:2012-01-16 17:46:40

标签: iphone objective-c ios object nsarray

在我的应用程序中,我将UIViewController从.plist加载到一个数组中,然后,我需要将这些VC输出。问题是,由于VC的数量并不总是相同,所以我不知道每次有多少VC出来。所以我正在寻找一种更好的改进解决方案 - 更好的迭代,而不是硬编码。

例如:

NSMutableArray *views = [[NSMutableArray alloc] init];

for (int i = [currentList count]; i > 0; i--) {
    UIViewController *view = [[UIViewController alloc] init];
    view.title = [NSString stringWithFormat:@"dgdg - %i", i];
    [views addObject:view];
}

所以有我的VC阵列,现在:

   myIvar = [[CustomSubClass alloc] initWithViewControllers:**help** nil];

我试过了:

   myIvar = [[CustomSubClass alloc] initWithViewControllers:[views copy], nil];

   myIvar = [[CustomSubClass alloc] initWithViewControllers:[NSIndexSet..., nil];

我试过了:

   myIvar = [[CustomSubClass alloc] initWithViewControllers:[views objectAtIndex:0]... nil];

但没有一个有效。提前谢谢。

2 个答案:

答案 0 :(得分:0)

您想要的语法是这样的:

[[CustomSubClass alloc] initWithViewControllers:[views objectAtIndex:0], [views objectAtIndex:1], [views objectAtIndex:2], nil];

基本上只需重复用逗号分隔所有参数,然后总是将最终参数设为nil。

答案 1 :(得分:0)

views是一个数组,您可以直接将其作为参数传递:

 myIvar = [[CustomSubClass alloc] initWithViewControllers:views];