我有一个静态单元格,单击时会启动模态视图。除非我从模态视图返回时仍然选择了单元格?为什么这样做,我怎样才能使它只选择单元格,直到模态完全覆盖视图。
提前致谢
答案 0 :(得分:7)
对于Swift 2:
myAudio.addEventListener('SOME EVENT', function(ARRAY) {
displayVisualizer(ARRAY);
});
对于Swift 3和4:
override func viewWillAppear(animated: Bool) {
if let indexPath = self.tableView.indexPathForSelectedRow {
tableView.deselectRowAtIndexPath(indexPath, animated: true)
}
}
答案 1 :(得分:3)
如果您使用UITableViewController
代替UIViewController
,则会自动完成此操作。否则,您需要使用UITableView
上的
deselectRowAtIndexPath:animated:取消选择。执行此操作的最佳位置可能是在呈现视图控制器的viewDidAppear:
上。这样,用户仍然可以看到取消选择动画,允许他们重新定位自己。
如果您不需要为其他目的跟踪所选行,则可以使用 indexPathForSelectedRow确定需要取消选择哪个索引路径(如果有)。
答案 2 :(得分:2)
我知道这太晚了但可能会帮助那些使用Swift的人 -
从detailViewController返回masterViewController时,这将产生很好的效果
override func viewWillAppear(animated: Bool)
{
if let indexPath = self.tableView.indexPathForSelectedRow
{
self.tableView.deselectRowAtIndexPath(indexPath, animated: true)
}
}
否则添加TableView的委托方法并从didSelectRowAtIndexPath中调用
func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath)
{
if let indexPath = tableView.indexPathForSelectedRow
{
tableView.deselectRowAtIndexPath(indexPath, animated: true)
}
}
答案 3 :(得分:0)
您可以在 UITableViewController ;
中使用它- (void)viewWillAppear:(BOOL)animated
{
[yourTableView deselectRowAtIndexPath:[yourTableView indexPathForSelectedRow] animated:YES];
}
在您的情况下, yourTableView 属性应为 self.tableView
答案 4 :(得分:0)
swift 3
override func viewWillAppear(animated: Bool) {
tableView.deselectRow(at: tableView.indexPathForSelectedRow!, animated: true)
}