2016-04-26 167 views
0

我有一个TableViewController具有组内的静态单元格。我想从一些静态单元执行segue,但也不知何故在知道TableViewController中知道哪个单元触发了segue。Segue从静态单元格动态TableViewController

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

回答

1

我试图和塞格斯与连接正常工作,个人的UITableViewCell

您可以在图片中看到的触发SEGUE部分

请确保您已连接从细胞延伸而不是其中的任何子视图。

编辑

从聊天看来你有一个UITapGesture这会占用视图的触摸。 为了避免这种情况,我建议删除TapGesture,并使用tableView方法来检测视图上的触摸

+0

对我来说也完全一样。我给了这个单元格,并添加了一个标识符。当我点击segue时,单元格会突出显示,选择也与截图一样。你在MainVC中添加了什么?我的怎么了? – senty

+0

尝试来聊天http://channels.cyberover.com/rooms/26424/iosandroidchaosoverflow – Shubhank

1

你有没有继承UITableViewController?你在Interface Builder中分配了这个子类吗?你有没有确保不执行覆盖func numberOfSectionsInTableView(tableView: UITableView) -> Int ,以便您的静态单元格实际显示?

当你CTRL +拖动你链接触发的选择,而不是辅助动作?

+0

你是什么意思的子类化?我不使用'numberOfSectionsInTableView',我的静态单元格出现。当我按Ctrl +拖动,这是选择,也是当我点击单元格时,在连接检查器的选择。另外,我给了segue的标识符..还有什么问题呢? – senty

+0

您的类MainTableViewController必须继承UITableViewController。所以你的类定义应该看起来像'class MainTableViewController :: UITableViewController {'完成这些之后,你需要点击界面构建器中的UITableViewController对象,并将其从UITableViewController类更改为MainTableViewController。你需要阅读关于可可子类。 – Curmudgeonlybumbly

+0

是的,我做到了。表视图工作正常。单元格被填充并从ViewController获取/修改数据。这只是赛格不起作用 – senty

相关问题