Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 从push segue返回后,Tableview行保持选中状态_Iphone_Segue - Fatal编程技术网

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。。。为了更好地使用应用程序,尽可能减少全局变量…谢谢-这个解决方案也可以。如果我能选择更多的答案作为解决方案…看起来更好。谢谢