下面的代码在用户触摸表视图中的行时以编程方式呈现视图控制器。代码驻留在'didSelectRowtIndex'路径中,表视图驻留在ViewController类中,我在其中实现了表视图委托。我遇到的问题是我试图呈现的视图控制器只出现在表视图行的第二次触摸上。但是,当父视图控制器首次加载时,它们会在第一次触摸时出现。下面是'didSelectRowAtIndexPath'中的代码,用于显示两个子视图控制器:
my_palette = sns.color_palette("muted")
sns.barplot(x=field, y="abbrev", data=crashes, label=field, palette=my_palette)
每次在行选择时都会调用上面的两个当前视图控制器方法,但是第一次选择时没有显示(或者至少它们不可见)。对这个谜团的任何帮助都会很棒。
-Thanks
答案 0 :(得分:1)
您必须先取消选择该行。在呈现之前添加:
tableView.deselectRow(at: indexPath, animated: false)
事实上,这对我来说也是一种谜。但这有助于我在以前使用它,我希望它对你也有效。
答案 1 :(得分:0)
使用我的delay
功能(记录为here):
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if indexPath.row == 0 {
let stockTable = StockTableVC()
delay(0.1) {
self.present(stockTable, animated: false, completion: nil)
}
}
// ... and so on ...
}
这使您可以在开始演示之前完成选择过程。