从静态单元格到动态TableViewController

时间:2016-04-26 16:23:10

标签: ios swift uitableview uiviewcontroller segue

我有一个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没有工作?

3 个答案:

答案 0 :(得分:1)

我尝试过,segues与各个UITableViewCell的连接正常工作

  

您可以在图像中看到触发的segue部分

请确保您已从单元格中连接segue而不是其中的任何子视图。

  

修改

在聊天中,您显示的是UITapGesture,可以触及视图。 为了避免这种情况,我建议删除TapGesture并使用tableView didSelectRow方法来检测视图上的触摸

答案 1 :(得分:1)

你是否是UITableViewController的子类?您是否在Interface Builder中分配了该子类?你确定没有实现覆盖功能numberOfSectionsInTableView(tableView: UITableView) -> Int 这样你的静态细胞真的会出现吗?

当您按住Ctrl +拖动时,您是否按选择链接了触发的分段,而不是附件动作?

答案 2 :(得分:0)

尝试在表格视图静态内容

中启用选择属性

属性检查器,如图here所示。