Iphone 编辑时,`UITableView`不调用didSelectRowAtIndexPath??
我有一个Iphone 编辑时,`UITableView`不调用didSelectRowAtIndexPath??,iphone,uitableview,Iphone,Uitableview,我有一个UITableViewController,用户可以在其中编辑项目。为了启用编辑,我使用以下方法: self.navigationItem.rightBarButtonItem = self.editButtonItem; 对于不知道self.editButtonItem来自何处的所有人,它是由SDK预定义的 所以,现在当我按下任何一项时,这个方法被调用: - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPat
UITableViewController
,用户可以在其中编辑项目。为了启用编辑,我使用以下方法:
self.navigationItem.rightBarButtonItem = self.editButtonItem;
对于不知道self.editButtonItem来自何处的所有人,它是由SDK预定义的
所以,现在当我按下任何一项时,这个方法被调用:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
但是,当我点击编辑按钮并且编辑处于活动状态时,这个方法似乎没有被调用
知道我错过了什么吗
这是与编辑相关的其余代码:
// Override to support conditional editing of the table view.
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
// Return NO if you do not want the specified item to be editable.
return YES;
}
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
return UITableViewCellEditingStyleNone;
}
- (BOOL)tableView:(UITableView *)tableView shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath
{
return NO;
}
谢谢你的帮助
mcb您必须将UITableView的AllowSelectionDuringEdit属性设置为true
参考资料:点击编辑按钮时,是否设置了
self.editing=YES
在编辑模式下,点击行时调用此方法,而不是didSelectRow:
tableView:commitEditingStyle:forRowAtIndexPath:.
但是,当我点击编辑按钮并且编辑处于活动状态时,这个方法似乎没有被调用
知道我错过了什么吗
对。当点击导航栏中的按钮时,您希望调用tableView:didSelectRowAtIndexPath:
。这永远不会发生。该方法仅在选定行时调用
点击编辑按钮时,您将希望将表格置于编辑模式。在视图控制器中:
- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
[super setEditing:editing animated:animated]; // must be called first according to Apple docs
[self.tableView setEditing:editing animated:animated];
}
然后通过添加一个
tableView:committeditingstyle:forRowAtIndexPath:
方法来处理编辑事件。我用另一种方法解决了这个问题。我的编辑按钮在我自己的导航栏上,这就是它没有被调用的原因。在导航控制器中嵌入VC,并在导航项中添加新的编辑按钮后,编辑按钮开始被调用。简短回答(Swift lang):
@IBOutlet private weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
tableView.allowsSelectionDuringEditing = true // Magic happens here
}
我不确定你的说法是否属实,当你真的删除或编辑单元格时,承诺就会被取消…阅读我的答案,这是在编辑时获得didSelectRow回电的方法我,你当然是完全正确的!我没注意:/对不起。他问为什么他编辑时不调用isnot didSelectRow,他不希望在点击时调用edit@Daniel如果你仔细看的话,你会发现我回答了这个问题。这正是我所缺少的,谢谢你的回答_superTableView.AllowSelectionDuringEdit=true;和_superTableView.AllowSelection=true;谢谢四年后,你仍然在拯救生命!即使在10年后@thomax。