我是iPhone编程新手,很难找到基本问题的答案。我在UIView上创建了一行UITableview,并希望单击鼠标单击以重定向到另一个UITableView屏幕以选择其中一个可用值。一切顺利,直到选择视图上的选择,但点击后退按钮后,新的选定值不会反映出来。我正在使用此代码
在我的通话视图
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// open a alert with an OK and cancel button
UIViewController *nextViewController = nil;
nextViewController = [[CategorySelectionView alloc] initWithStyle:UITableViewStyleGrouped];
((CategorySelectionView *)nextViewController).category = parentCategory;
[self.navigationController pushViewController:nextViewController animated:YES];
[nextViewController release];//break;
}
On selection View
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// If there was a previous selection, unset the accessory view for its cell.
NSManagedObject *currentCategory = category;
if (currentCategory != nil) {
NSInteger index = [categoryTypes indexOfObject:currentCategory];
NSIndexPath *selectionIndexPath = [NSIndexPath indexPathForRow:index inSection:0];
UITableViewCell *checkedCell = [tableView cellForRowAtIndexPath:selectionIndexPath];
checkedCell.accessoryType = UITableViewCellAccessoryNone;
}
// Set the checkmark accessory for the selected row.
[[tableView cellForRowAtIndexPath:indexPath] setAccessoryType:UITableViewCellAccessoryCheckmark];
category = [categoryTypes objectAtIndex:indexPath.row];
}
这是Apple开发人员食谱代码的摘录,但不适用于我。真的很感激任何帮助。此外,如果我可以重定向到使用tableView屏幕作为选择器的示例,将同样有帮助。期待您的帮助
答案 0 :(得分:0)
如果您想在didSelectRowAtIndexPath
[tableView deselectRowAtIndexPath:indexPath animated:NO];
所以你的代码必须如下所示。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// If there was a previous selection, unset the accessory view for its cell.
NSManagedObject *currentCategory = category;
if (currentCategory != nil) {
NSInteger index = [categoryTypes indexOfObject:currentCategory];
NSIndexPath *selectionIndexPath = [NSIndexPath indexPathForRow:index inSection:0];
UITableViewCell *checkedCell = [tableView cellForRowAtIndexPath:selectionIndexPath];
checkedCell.accessoryType = UITableViewCellAccessoryNone;
}
// Set the checkmark accessory for the selected row.
[[tableView cellForRowAtIndexPath:indexPath] setAccessoryType:UITableViewCellAccessoryCheckmark];
category = [categoryTypes objectAtIndex:indexPath.row];
//Add it to deselect the selected cell
[tableView deselectRowAtIndexPath:indexPath animated:NO];
}
<强>编辑:强>
当您单击后退按钮时,获取该事件并更新数据(由您的tableview显示),然后在reloadData
实例上调用UITableView
方法。
要获取更新值,可以使用UITableView
的reloadData方法。
使用如下
[tableView reloadData];