如何在不同的视图上获取选定的表视图单元格

时间:2014-02-07 19:38:58

标签: objective-c xcode uitableview

所以我有一个HistoryViewController,当我点击一个单元格时,我希望在我的DetailsViewController上获得该EXACT tapped单元格的值。这样当用户点击我的DetailsViewController中的“付费”按钮时,我的HistoryViewController可以标记该SPECIFIC单元格“付费”。

编辑:

好的,所以在我的核心数据数据模型中,我有2个实体。一个是PeopleYouOwe。另一个是PeopleWhoOweYou。每个实体都有一个名为“付费”的属性。付费设置为键入BOOLEAN。当我点击 HistoryTableViewController 中的单元格时,它会将我引导至 DetailViewController 。在我的DetailViewController中,我有一个名为“付费”的按钮。当用户点击此按钮时,我想知道如何将被点击的单元格设置为YES。之后,我想更新我在CoreData中的所有实体,以便为BOOLEAN值“付费”将所选单元格的属性保存为YES。

2 个答案:

答案 0 :(得分:0)

您需要在DetailsViewController中创建与“value”相同类型的属性。当用户点击一个单元格时,在didSelectRowAtIndexPath方法上,将该值传递给DetailsViewController实例。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    // ...
    MyObject *object = //.... get the value for that row
    myDetailsViewController.myselectedObject = object;
    // myDetailsViewController is the instance of the detailsViewController
    // ...
}

因此,在DetailsViewController的代码中,您可以使用

操作该对象
[self myselectedObject]

例如对于付费按钮,您可以设置

self.myselectedObject.paid = YES;   //... or whatever you want to do

答案 1 :(得分:0)

您可以向DetailViewController

添加回调块属性
@property (copy, readwrite, nonatomic) void (^payButtonActionHandler)(BOOL didPay)

如果要创建某种切换,didPay参数很有用。

在您的DetailViewController实施中:

- (void)paidButtonAction:(UIButton *)sender {

    if (self.payButtonActionHandler)
        self.payButtonActionHandler(YES);
}


HistoryViewController

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

        Person *person = // get your person object for this row
        DetailsViewController *vc = [DetailsViewController new];
        vc.payButtonActionHandler = ^(BOOL didPay) {

            // Update your entity
            person.hasPaid = didPay;

            // Reload the row
            [self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
        }
        [self.navigationController pushViewController:vc animated:YES];
    }



编辑:您可以查看此网站以记住阻止语法http://fuckingblocksyntax.com/