从数组中取出未定义数量的 ViewController

Posted

技术标签:

【中文标题】从数组中取出未定义数量的 ViewController【英文标题】:Getting out a undefined number of ViewController from an Array 【发布时间】:2012-01-16 17:46:40 【问题描述】:

在我的应用程序中,我将 UIViewController 从 .plist 加载到数组中,然后,我需要将这些 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];

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

【问题讨论】:

【参考方案1】:

你想要的语法是这样的:

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

基本上只是重复,用逗号分隔所有参数,然后始终让最后一个参数为零。

【讨论】:

问题是有时可能是 8 个项目,有时可能是 20 个。所以我正在寻找一种计算机可以查看项目数量然后输入正确数字的方法,而不是然后是硬编码【参考方案2】:

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

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

【讨论】:

以上是关于从数组中取出未定义数量的 ViewController的主要内容,如果未能解决你的问题,请参考以下文章

jquery 怎么定义数组,再怎么把值一个个添加到数组中,再怎么取出其中值

为啥 map() 返回一个未定义值的数组?

jquery循环获取值想依次添加到数组里,再怎么从数组中取出值

js如何从一个数组中随机取出n个不同且不重复的值

js如何从一个数组中随机取出n个不同且不重复的值

PHP中怎么从一个二维数组中随机取出一个值?