Segue在按下时不会显示ViewController

时间:2017-02-11 02:47:48

标签: ios iphone swift uitableview firebase

我目前在ViewController中有UITable View 原型单元格。加载时cells当前显示来自 Firebase数据库的内容。我想要做的是当按下cell时, Firebase DB 会显示更多信息。但是,我目前无法从segue获取ViewController推送cell。我应该怎么做才能做到这一点?

我的故事板的图片 -

enter image description here

4 个答案:

答案 0 :(得分:0)

这两段代码将有所帮助。对于swift:

@IBAction func showEntries(_ sender: Any) {
    self.performSegue(withIdentifier: <sequeId>, sender: nil)
}

和一个包含此操作的按钮。

对于Objective C,你可以像这样执行segue。

[self performSegueWithIdentifier:@"showEditor" sender:self];

通过CTRL创建操作并将按钮或单元格拖动到相应的代码文件中,选择操作并为其命名。 enter image description here

答案 1 :(得分:0)

很难说,但从屏幕截图来看,看起来segue从控制器转到控制器,而不是从控制器到控制器。如果您想这样做,那么您需要为segue指定一个标识符(在屏幕截图的右侧面板中),然后覆盖委托方法

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    performSegue(withIdentifier: "yourIdentifier", sender: self)
}

或者(如果您不想解决所有这些问题)...在故事板中,将segue从单元格拖到您要推送的视图控制器上,而不是而不是从控制器到控制器。

例如,

enter image description here

注意如何选择segue时,只有单元格以蓝色标出,而不是整个视图控制器。

答案 2 :(得分:0)

这是因为单元格是动态的,因此您无法将单元格中的事件处理程序分配给uiviewcontroller。相反,你应该在你的cellForRowAtIndexPath方法中创建segue并从那里推送它。如果你想在故事板中看到segue,那么你也可以从viewcontroller1 ctrl + drag到viewcontroller2来创建一个新的segue。然后选择segue并给它一个Storyboard id。之后,您可以致电self.performSegue(withIdentifier: "yourIdentifier")

答案 3 :(得分:0)

我实际上找到了解决方法。问题实际上相当简单。我不得不将表格视图属性中的选择设置从“无选择”更改为“单选”。