Ste*_*eal 4 iphone uitableview uinavigationcontroller
我对iPhone开发很陌生,并且很难找到我认为是解决这个问题的巧妙方法.
我有一个用户界面,其中记录数据的摘要显示在导航控制器内的表中.当用户单击行的附件按钮时,新视图被推到导航控制器上,显示用户可以编辑相应记录中的数据的视图.完成后,编辑视图将从导航控制器的堆栈中弹出,用户将返回到表视图.
我的问题是,当用户返回到表视图时,该表仍然显示编辑记录之前的数据状态.因此,我必须重新加载表数据以显示更改.
在显示表数据之前,似乎无法重新加载表数据,因为仅调用更新显示的记录.在显示表格后重新加载它会导致旧数据在用户眼前变化,我对此并不满意.
在我看来,这似乎是一个非常正常的想要在iPhone应用程序中做的事情.
有人可以建议这样做的最佳实践方法吗?我觉得我错过了什么.
干杯 - 史蒂夫.
Pau*_*nch 16
标准方法起初可能听起来很麻烦,但对于很多情况来说都是一种有用的模式.
在tableview类中创建一个方法,如:
-(void)editDone {
[self.tableView reloadData];
}
Run Code Online (Sandbox Code Playgroud)
将属性添加到编辑控制器,如:
@property (assign) id delegate;
Run Code Online (Sandbox Code Playgroud)
单击附件时设置代理:
editController.delegate = self;
Run Code Online (Sandbox Code Playgroud)
编辑完成后,像这样调用您的方法:
[delegate performSelector:@selector(editDone) withObject:nil];
Run Code Online (Sandbox Code Playgroud)
您可以创建类似的方法来处理编辑组件的取消,或者执行模式编辑控制器的解除等.如果您愿意,将所有这些放在协议中会被认为更加优雅.
kov*_*pas 13
我将通过以下方式实现此目的:
保存单击的单元格的indexPath.
-[UIViewController viewWillAppear:]视图控制器的实现方法,包含UITableView.如果保存的indexPath不是nil,则使用以下命令重新加载指定的单元格:
-[UITableView reloadRowsAtIndexPaths:withRowAnimation:]