Iphone 从push segue返回后,Tableview行保持选中状态
我的视图控制器是一个Iphone 从push segue返回后,Tableview行保持选中状态,iphone,segue,Iphone,Segue,我的视图控制器是一个UIViewController。我已将UITableView添加到UIView中。选中tableview行时,推送序列将触发新的视图控制器。但是,从新的视图控制器返回时,选定的行将保持选中状态。当我的第一个控制器是UITableviewController时,我没有遇到这个问题,但我必须将其更改为UIViewController,因为我想在视图中添加活动指示器。 我注意到的另一件事是,当我的第一个控制器是UITableviewController时,从新的视图控制器返回时没
UIViewController
。我已将UITableView
添加到UIView
中。选中tableview行时,推送序列将触发新的视图控制器。但是,从新的视图控制器返回时,选定的行将保持选中状态。当我的第一个控制器是UITableviewController
时,我没有遇到这个问题,但我必须将其更改为UIViewController
,因为我想在视图中添加活动指示器。
我注意到的另一件事是,当我的第一个控制器是UITableviewController
时,从新的视图控制器返回时没有调用viewdiload
(但现在调用了它) 添加
[tableView deselectRowAtIndexPath:indexPath animated:YES];
在tableView:didSelectRowAtIndexPath:
中,尝试以下操作:
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
这将帮助您解决…您可以添加
[tableView deselectRowAtIndexPath:indexPath animated:YES];
在tableView:didSelectRowAtIndexPath:
delegate中
或者你可以
-(void)viewWillAppear:(BOOL)animated
{
[table reloadData];
}
此机制是建议答案的一种变体,在细节视图消失时删除选择,但也有助于用户了解他们选择了什么以进入细节视图:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.tableView deselectRowAtIndexPath:self.tableView.indexPathForSelectedRow animated:YES];
}
这似乎就是苹果在自己的应用程序中所做的。有关示例,请参见在“联系人”应用程序中选择联系人记录时的行为
tableView.deselectRowAtIndexPath(indexPath, animated: true)
这可能有助于作为问题的更新答案
在此处找到有关此主题的一些信息 Swift 3.0:
tableView.deselectRow(at:indexPath,动画:true)
如果用户想在行选择上选择blueSelection怎么办?谢谢,这个解决方案也可以(当添加到CellForRowatineXpath
时)但是我选择了Atif的答案,因为他是第一个回答的人。如果用户想在行选择上选择blueSelection怎么办谢谢。我没有使用tableView:didSelectRowAtIndexPath:
,所以我添加了[self.tableView取消rowatindexpath:indexath:YES]
to应改为使用identifier
方法执行segue。但是,与我的初始解决方案(第一个控制器是UITableViewController)相比,这种行为的原因是什么?可能是在这种情况下,您没有在中设置任何选择InterfaceBuilder@Rajneesh071使用此方法,蓝色选择显示为闪烁。因为它先被选中一段时间,然后被取消选中!但是兄弟,为了这个,你必须保持。。您必须创建全局NSIndexPath。。。为了更好地使用应用程序,尽可能减少全局变量…谢谢-这个解决方案也可以。如果我能选择更多的答案作为解决方案…看起来更好。谢谢