我有一个TableViewController,它在组内有静态单元格。我想从一些静态单元格中执行segue,但也知道哪个单元格在segued TableViewController中触发了segue。
我ctrl +从每个单元格拖动到目标TVC,添加了segue标识符并为TVC创建了一个类。
我采用这种方法,但是segue不起作用。它不会打印XOX
class MainTableViewController {
viewDidLoad() {
tableView.delegate = self
tableView.dataSource = self
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
print("XOX")
if segue.identifier == "MainToA" {
if let destination = segue.destinationViewController as? DetailTableViewController {
destination.page = "A"
}
}
if segue.identifier == "MainToB" {
if let destination = segue.destinationViewController as? DetailTableViewController {
destination.page = "B"
}
}
}
class DetailTableViewController {
var page = String()
viewDidLoad() {
print(page)
}
}
我错过了什么或完全没有轨道?为什么segue没有工作?
答案 0 :(得分:1)
我尝试过,segues与各个UITableViewCell的连接正常工作
您可以在图像中看到触发的segue部分
请确保您已从单元格中连接segue而不是其中的任何子视图。
修改
在聊天中,您显示的是UITapGesture
,可以触及视图。
为了避免这种情况,我建议删除TapGesture并使用tableView didSelectRow
方法来检测视图上的触摸
答案 1 :(得分:1)
你是否是UITableViewController的子类?您是否在Interface Builder中分配了该子类?你确定没有实现覆盖功能numberOfSectionsInTableView(tableView: UITableView) -> Int
这样你的静态细胞真的会出现吗?
当您按住Ctrl +拖动时,您是否按选择链接了触发的分段,而不是附件动作?
答案 2 :(得分:0)
尝试在表格视图静态内容
中启用选择属性属性检查器,如图here所示。