UItableview使用警报视图重新加载数据的问题,并在自定义单元格上显示提示

时间:2009-06-30 04:16:26

标签: iphone objective-c uitableview

我有一个UItableViewController,其中包含使用界面构建器设计的自定义单元格。自定义单元格上有一个按钮和一个标签。单击时按钮将触发带提示的警报视图。输入文本后按OK,单元格上的标签将在表格上显示更新的信息。问题是标签在我点击其中一个单元格之前不会更新。我不能使用[tableview reloaddata],因为我正在使用IB并且它创建了一个单独的.h和.m UItableViewCell文件,这是我将警报视图与提示代码放在其中的地方。在取消警报视图时,如何调用重新加载数据来更新表。我已将[tableview reloaddata]放在viewWillAppear下的UItableViewController中,但它不起作用。

3 个答案:

答案 0 :(得分:0)

您可以继续引用UITableViewController并从单元格上调用reloaddata。

答案 1 :(得分:0)

我对iPhone开发还很陌生,但我一次又一次看到的设计模式之一就是委托。这使您可以在保持组件可重用性的同时扩展功能。

我相信您可以为UIAlertView设置委托,然后通过@interface定义在主UITableViewController上实现协议。这意味着只要在实例化后在AlertView对象中设置了delegate属性,控制台就会收到与该特定警报相关的事件的通知。

看一下这个功能......

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex

如果你设置了上面的委托,然后重载这个函数,你应该能够在专门按下警报视图时调用[tableview reloadData]。

另外 - 你有没有理由不能定义按钮在UITableViewController中调用的IBAction方法?这样可以避免绕过单元格的父节点,看起来更好地遵守MVC。

答案 2 :(得分:0)

我已经弄清楚了。请参阅以下代码:

UItableView *tableView = (UItableView *)self.superview;
[tableView reloadData];

self.superview就是诀窍!