ios - 将单元格数组项传递给另一个 View Controller

标签 ios objective-c arrays uitableview object

因此,这是我一直在阅读的一个常见问题,我仍在学习中,请记住这一点。

基本上,我的应用程序当前允许您向表视图中添加一个项目,然后从表视图中选择一个单元格时,它会显示另一个视图控制器,该控制器用于显示该单元格的详细信息。

Diagram

在我的tableView实现文件.m中,我具有单击单元格时转到视图控制器的代码:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    SelectedItemViewController *selectView = [[SelectedItemViewController alloc] initWithNibName:@"SelectedView" bundle:nil];

    [selectView.titleView setText:@"test"];

    [self performSegueWithIdentifier:@"showSelected" sender:indexPath];
}


我只是测试了“ setText”代码段,以查看是否能够更改ViewCellController中的textLabel。

当用户保存新项目时,这是以下segue代码,当它返回到TableView时将被调用。 “ toDoItem”是一个NSMutableArray。

 -(IBAction)unwindToList:(UIStoryboardSegue *)segue {
    AddToDoItemViewController* source = [segue sourceViewController];
    ToDoItem* item = source.toDoItem;
    if (item != nil){
        [self.toDoItems addObject:item];
        [self.tableView reloadData];
    }
}


显然我做错了。

我想了解的是我如何能够:


选择一个单元格,从数组中的该索引中获取数据,而不只是单元格数据,数据包括:标题,说明,到期日期和完成。
在另一个视图控制器中显示它。
操作完成布尔值并保存,以便再次单击时保持该状态。


我不想给出一个完整的答案,只是为了指出正确的方向,以便我自己解决,谢谢!

最佳答案

在您的detailviewcontroller中,您可以将toDoItem设置为弱属性...
实例化detailviewcontroller后,在mainviewcontroller的didselectrow中,可以将其todoitem设置为mainviewcontroller中给定索引路径下的todoitem。


在您的detailviewcontroller中,然后使用mainviewcontroller中的项目


在轻松进行搜索时,您唯一需要做的就是重新加载tableviews数据。


希望你明白我的意思:)

关于ios - 将单元格数组项传递给另一个 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29919568/

相关文章:

ios - MFMailComposeViewController 的自定义 UINavigationBar

iphone - 是否可以在关闭蜂窝数据和 Wi-Fi 时获取用户位置?

ios - 添加覆盖屏幕内容的自定义导航栏

c# - 为什么控制台不断为数组中的元素写入相同的输出?

iOS : Firebase Send/Save Data in chunks

ios - 应用程序中带有 TabBarController 的导航 Controller

ios - 如何听一个 subview IBAction?

ios - PHImageManager requestImageForAsset 为 iCloud 照片返回 nil

python - 二维数组中沿轴的 Numpy 百分比

javascript - 将数组转换为键/值数组