我有一个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出现。 我在那里做工作并使用委托传回总数。它快乐地到达第一个视图控制器,但后来我被卡住了。 如何让它填充正确的单元格?
答案 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";