我有一个TableView,我有行的标题保存属性的名称。didSelectRowAtIndex没有正确更新
属性是在另一个TableView中定义的,我可以按“Add”将新创建的对象添加到第一个TableView中。
如果我现在想编辑让我们说列表中的第二个对象,我必须按下它(切换到第二个TableView)按取消,然后再按一次,以获得正确的名称。
与didSelectRowAtIndex
似乎并不正确,但我无法弄清楚它是什么。
这里是我的方法:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
self.indexPathInt = (int)indexPath.row;
}
和:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:kSegueIdentifier]){
AddEntry *controller = [[[segue destinationViewController] viewControllers] objectAtIndex:0];
controller.delegate = self;
}
if ([[segue identifier] isEqualToString:kEditSegueIdentifier]) {
edited = YES;
AddEntry *controller = [[[segue destinationViewController] viewControllers] objectAtIndex:0];
EntryObject *entry = self.entryObjectArray[self.indexPathInt];
controller.name = entry.name;
controller.someProperty = entry.soneProperty;
controller.delegate = self;
}
}
如果我在PrepareforSegue
方法是不一样的DidSelectRowAtIndex
方法indexPath.row
日志indexPathInt
,而是一个我点击之前。
因此indexPathInt
没有得到及时更新。
是否有另一种方法来访问任何方法中的选定行而不将它发送给变量?
'UITableView'方法'indexPathForSelectedRow'将为您提供当前选定行的'NSIndexPath'。 – bobnoble 2014-10-01 10:32:18