我有EasyTableView(https://github.com/alekseyn/EasyTableView)的简单问题
我有许多正常运行的水平滚动表。
我能够选择一个单元格并执行一个segue,但是,一旦新的视图控制器被解除,我就无法再选择该单元格并执行相同的操作,直到我在同一个表格中选择了另一个单元格。
我的问题是:如何以编程方式取消选择以前选择的单元格以重新设置此特定操作。
提前致谢!
答案 0 :(得分:3)
如果用户在屏幕外滚动选定的tableview单元格然后再返回,则selectedIndexPath会被故意执行。如果您不想要这种持久性,请在委托方法之后添加如下所示的行(在EasyTableView.m中):
- (void)setSelectedIndexPath:(NSIndexPath *)indexPath {
if (![_selectedIndexPath isEqual:indexPath]) {
NSIndexPath *oldIndexPath = [_selectedIndexPath copy];
_selectedIndexPath = indexPath;
UITableViewCell *deselectedCell = (UITableViewCell *)[self.tableView cellForRowAtIndexPath:oldIndexPath];
UITableViewCell *selectedCell = (UITableViewCell *)[self.tableView cellForRowAtIndexPath:_selectedIndexPath];
if ([delegate respondsToSelector:@selector(easyTableView:selectedView:atIndexPath:deselectedView:)]) {
UIView *selectedView = [selectedCell viewWithTag:CELL_CONTENT_TAG];
UIView *deselectedView = [deselectedCell viewWithTag:CELL_CONTENT_TAG];
[delegate easyTableView:self
selectedView:selectedView
atIndexPath:_selectedIndexPath
deselectedView:deselectedView];
// Add this line here!
_selectedIndexPath = nil;
}
}
}