0

我正在用 Objective-c 开发我的第一个应用程序。在第一个视图控制器中,我能够使用包含附件按钮的动态原型单元生成 UITableview。当我单击附件按钮时,它将导航到下一个视图控制器,该控制器还将具有动态 UITableviewcells 和(自定义按钮)选择作为附件按钮。但是,当我单击特定的选择按钮时,相应的单元格内容应该在单击辅助按钮的单元格(在第一个屏幕中)中更新。我能够从第二个屏幕到第一个屏幕获取详细信息。但是,我在第一个屏幕中的自定义单元格没有更新?

请帮助是否有任何预定义的函数,我在参考文档中没有找到。

先感谢您..

4

1 回答 1

0

从 ios 5 开发开始就有一个解决方案算法。

1.在prepareSegue中取indexPath

// prepare selection info
NSIndexPath *indexPath = [self.tableView indexPathForCell:sender];

2.将其发送到第二个视图控制器

    UIViewController *destination = segue.destinationViewController;
    [destination setValue:self forKey:@"delegate"];

    id object = [self.tasks objectAtIndex:indexPath.row];
    NSDictionary *selection = [NSDictionary dictionaryWithObjectsAndKeys:indexPath,@"indexPath",object,@"object", nil];        
    [destination setValue:selection forKey:@"selection"];

3.第二个视图控制器稍后会将indexPath发回给第一个控制器

// prepare selection info back
NSIndexPath *indexPath = [_selection objectForKey:@"indexPath"];
id object = _textView.text;
NSDictionary *editedSelection = [NSDictionary dictionaryWithObjectsAndKeys:indexPath, @"indexPath", object, @"object", nil];
[_delegate setValue:editedSelection forKey:@"editedSelection"];

4.因此在第一个视图控制器的getter方法中,该方法用于从第二个视图控制器取回indexPath,您通过indexPath取回表格单元格并更改其值

#pragma mark - Call back by destination view
-(void)setEditedSelection:(NSDictionary *)dict{
    NSIndexPath *indexPath = [dict objectForKey:@"indexPath"];
    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
    ....
}
于 2013-01-07T05:30:05.030 回答