Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 按下时,Segue将不显示ViewController_Ios_Iphone_Swift_Uitableview_Firebase - Fatal编程技术网

Ios 按下时,Segue将不显示ViewController

Ios 按下时,Segue将不显示ViewController,ios,iphone,swift,uitableview,firebase,Ios,Iphone,Swift,Uitableview,Firebase,我目前有一个ViewController,其原型单元位于一个UITable视图中。加载时,单元格当前显示Firebase DB中的内容。我想做的是当按下一个单元格时,Firebase DB会显示更多信息。但是,我目前无法让segue从单元格推送到ViewController。我该怎么做才能让它工作 我的故事板图像- 这两段代码将有所帮助。对于swift: @IBAction func showEntries(_ sender: Any) { self.performSegue(withI

我目前有一个ViewController,其原型单元位于一个UITable视图中。加载时,单元格当前显示Firebase DB中的内容。我想做的是当按下一个单元格时,Firebase DB会显示更多信息。但是,我目前无法让segue从单元格推送到ViewController。我该怎么做才能让它工作

我的故事板图像-


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

@IBAction func showEntries(_ sender: Any) {
    self.performSegue(withIdentifier: <sequeId>, sender: nil)
}
通过按住CTRL键并将按钮或单元格拖动到相应的代码文件中来创建操作,选择操作并将其命名。

很难说,但从屏幕截图上看,这段视频似乎是从一个控制器到另一个控制器,而不是从一个单元到另一个控制器。如果您想这样做,那么您需要在屏幕截图的右侧面板中为segue提供一个标识符,然后覆盖委托方法

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    performSegue(withIdentifier: "yourIdentifier", sender: self)
}
或者,如果你不想惹这么多麻烦……在故事板中,将片段从单元格拖到要推送的视图控制器,而不是从一个控制器拖到另一个控制器

比如说,


请注意,当选择segue时,只有单元格显示为蓝色,而不是整个视图控制器。

这是因为单元格是动态的,所以无法将事件处理程序从单元格分配给uiviewcontroller。相反,您应该在CellForRowatineXpath方法中创建segue并从那里推送它。但是,如果您想在故事板中看到该片段,还可以按住ctrl键并将其从viewcontroller1拖动到viewcontroller2以创建新片段。然后选择segue并给它一个故事板id。然后你可以调用self.performsguewithidentifier:yourIdentifier

我实际上找到了解决这个问题的方法。问题其实相当简单。我所要做的就是将表视图属性中的选择设置从“无选择”更改为“单一选择”。

添加按钮在屏幕上显示按钮2秒后会加载Firebase内容,因此看起来不太美观。Opate按钮是一个选项,上面的答案似乎可以通过选择行来实现。谢谢,但是选择单元格本身也不起作用,添加代码也不会改变任何事情。嗯……这可能是一个愚蠢的问题,但是单元格是否可以选择?包括确保故事板中单元格的选择选项未设置为“无”。单元的重用标识符设置正确吗?而且,我刚刚注意到segue类型是show detail。你在用iPhone吗?“显示详细信息”用于拆分视图控制器在拆分视图的“详细信息”窗格中显示此视图。如果您希望将视图控制器推送到导航堆栈上,则类型应为Show,例如push。再次感谢您的帮助,因为我尝试了这两种方法,但均无效。我能提供什么帮助解决这个问题吗?您能提供表视图控制器类的代码吗?如果没有,我也能理解。在我看来,故事板中的其他一切都很正常。你得到的确切错误是什么?@TusharSharma我没有得到任何错误,这就是问题所在。我真的不知道如何调试这个问题。您是否推过视图控制器,其中有一个带有导航控制器的表视图。??。选中此URL,我会设置您所说的顺序和代码,但是一旦单元格加载,ViewController就会加载。当我按下“后退”键时,我会被带回手机,无法再次按下。
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    performSegue(withIdentifier: "yourIdentifier", sender: self)
}