如何更新动态生成的故事板中的自定义特定 UITableview 单元格?

Posted

技术标签:

【中文标题】如何更新动态生成的故事板中的自定义特定 UITableview 单元格?【英文标题】:How to update custom specific UITableview cell in storyboard, which are dynamically generated? 【发布时间】:2013-01-07 05:11:51 【问题描述】:

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

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

提前谢谢你..

【问题讨论】:

【参考方案1】:

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.So 在第一个视图控制器的 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];
    ....

【讨论】:

您好,谢谢您的回复,能否请您给我一个原型,我该如何完成这个... 对不起。我在手机上回复了这个帖子。我应该给你一些例子:) 等等..我会编辑我的答案 嗨@code4j,上面的indexpath值在滚动uitableview时会发生变化。我该如何克服...

以上是关于如何更新动态生成的故事板中的自定义特定 UITableview 单元格?的主要内容,如果未能解决你的问题,请参考以下文章

故事板中的自定义转场

故事板中的自定义 UIView

故事板中的自定义导航控制器

故事板中的自定义 UIView 不显示子视图

故事板中的自定义表格视图单元格布局似乎无效

使用故事板中定义的自定义类