首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从UITableView保存多个值

从UITableView保存多个值
EN

Stack Overflow用户
提问于 2014-01-23 16:40:39
回答 2查看 516关注 0票数 1

我有一个UIViewController,它调用4 UITableViewControllers作为它的子视图。

这些表视图启用了附件复选标记,可以在一个表中选择多个行。

我的问题是,当我的UIViewController与所有的表视图一起显示时,我希望保存每个表视图的选定值,并将其保存在数组或其他东西中。

我还想在另一个类中使用这些选定的值,在该类中我必须显示所有选定的值。

有人能帮助我如何保存不同表视图的多个值并在另一个类中使用这些值吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-23 16:46:34

只需使用indexPathsForSelectedRows。但是这个指令将返回多个indexPath

也就是说,Xcode具有出色的自动完成功能,您可以开始键入"index“,它将直接显示indexPathsForSelectedRows,您还可以参考Xcode提供的优秀文档。我希望它能帮助你!

更新1-如何从数组获取indexPaths

indexPathsForSelectedRows方法将返回一个NSIndexPath对象数组,每个对象对应于一个选定项。如果没有选定的项,则此方法将返回空数组。

现在要访问这个对象,您必须问自己,我如何访问数组?你做一些研究,然后你会得出这样的结论:

代码语言:javascript
复制
NSArray *arrayOfIndexPathsTableOne = [self.myTableViewOne indexPathsForSelectedRows];

//Then you can iterate through the array and doWhatever you like. 
for(int i = 0; i < [arrayOfIndexPathsTableOne count]; i++){
    NSIndexPath *indexPathImInterestedIn = [arrayOfIndexPathsTableOne objectAtIndex:i];
    //If you do actually have a tableViewController then call [self cellFor...]; instead of self.myTableViewOne 
    UITableViewCell *currentCell = [self.myTableViewOne cellForRowAtIndexPath:indexPathImInterestedIn];

    //you can grab the data you need from this cell and do whatever you like
    //I would suggest you grab the data from the datasource instead of the cell, since your datasource should contain the datamodel where you can extract the information you need.

    //Or if its just one value from the cell you want to grab you could do
    [myGlobalArray addObject:[NSString stringWithObject:@"%@", currentCell.textLabel.text]]; //your value
}

//Voila
票数 0
EN

Stack Overflow用户

发布于 2014-01-23 16:52:32

如何在父视图控制器中托管这些表视图控制器?如果您使用的是故事板,那么最干净的方法就是使用嵌入式segue。

然后,在prepareForSegue中,可以保存指向每个子表视图控制器的指针。

我建议设计一种协议,允许父视图控制器向子表视图控制器询问所选项的列表。或者,您可以将父视图控制器设置为每个表视图控制器的委托,并创建委托方法,在用户更改当前选定项时通知父控件。

我在github上有一个示例项目,它有一个父视图控制器托管两个表视图控制器,其中父视图控制器和子视图控制器使用协议相互通信。单击此链接查看它。

Demo project using embed segues to manage multiple static table views

注意,对于单个表视图,方法indexPathsForSelectedRows将返回表视图中所有选定项的数组。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21314197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档