Uitableviewcell与文本字段和按钮

时间:2014-05-16 16:09:24

标签: ios objective-c uitableview

我有一个tableviewcell,它有两个文本字段和一个按钮。 这个想法是你填写文本字段,但按钮将调出另一个具有某种计算器的viewcontroller。

我的问题在于将值重新带回正确的单元格和文本字段。

我在配置单元格中点击了按钮;

[cell setDidTapButtonBlock:^(id sender) {
    [self countNotes:cashoutLine.cashCurrency cell:cell];

}];

这称为代码提取;

-(void)countNotes:(Currency *)cashCurrency cell:(PouchEntryViewCell *)cell
{

    NotesCountViewController *notesCountVC = [[NotesCountViewController alloc] init];
    notesCountVC.noteCurrency = cashCurrency;

    notesCountVC.notesDelegate = self;

     notesCountVC.modalPresentationStyle = UIModalPresentationFormSheet;
    [self presentViewController:notesCountVC animated:YES completion:nil];
}

所有好的和新的viewcontroller出现。 我在那里做工作并使用委托传回总数。它快乐地到达第一个视图控制器,但后来我被卡住了。 如何让它填充正确的单元格?

2 个答案:

答案 0 :(得分:0)

NotesCountViewController

- (id) initWithIndexPath:(NSIndexPath *) indexPath {

    self = [super init];

    if (self) {
        self.indexPath = indexPath;
    }

    return self;
}

在你的.h中声明这个并且还添加一个indexPath属性..然后在你的委托回调中添加self.indexPath。

要打电话就行:

NotesCountViewController *notesCountViewController = [[NotesCountViewController alloc] initWithIndexPath:[self.tableView indexPathForCell:cell];

然后检索del回调中的单元格:

UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];

答案 1 :(得分:0)

假设您从作为UITableViewDataSource委托的ViewController呈现计算器,您可以通过在NotesCountViewController中创建NSIndexPath属性来找到更新文本字段的正确单元格。在显示视图控制器之前,请设置该属性。当它被解散时,将NSIndexPath传递回你的UITableViewDataSource viewController,并找到正确的单元格。

-(void)countNotes:(Currency *)cashCurrency cell:(PouchEntryViewCell *)cell atIndex:(NSIndexPath *)indexPath
{
    NotesCountViewController *notesCountVC = [[NotesCountViewController alloc] init];
    notesCountVC.noteCurrency = cashCurrency;

    notesCountVC.cellIndexPath = indexPath;

    notesCountVC.notesDelegate = self;
    notesCountVC.modalPresentationStyle = UIModalPresentationFormSheet;
    [self presentViewController:notesCountVC animated:YES completion:nil];
}

然后使用

获取Delegate回调中的单元格
PouchEntryViewCell *cell = (PouchEntryViewCell *)[self.tableView cellForRowAtIndexPath:indexPath];
cell.textField.text = @"New Text";