当用户单击行时,我想对详细视图执行segue。当前提供的代码也可以在以前的项目中执行相同的任务,因此我不确定在哪里可能出错。

这是didSelectRowAt函数的代码段:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        print(indexPath.row)
        tableView.deselectRow(at: indexPath, animated: true)

        let postsInfo = posts[indexPath.row]
        print(postsInfo)
        let Storyboard = UIStoryboard(name: "Main", bundle: nil)
        let DvC = Storyboard.instantiateViewController(withIdentifier: "NewsFeedDetailedController") as! NewsFeedDetailedController
        DvC.getTitle = postsInfo.title.title
        print(postsInfo.title.title)
        DvC.getSubtitle = postsInfo.description
        print(postsInfo.description)
        DvC.getImg = postsInfo.title.photoURL.absoluteString
        print(postsInfo.title.photoURL.absoluteString)
        DvC.getDate = postsInfo.postdate
        print(postsInfo.postdate)

        self.navigationController?.pushViewController(DvC, animated: true)
    }

所有数据都在控制台中打印,因此可以肯定我的数据库(Firebase实时数据库)没有问题。

我还为“详细视图控制器”指定了Storyboard ID的NewsFeedDetailedController

最佳答案

问题一定是navigationController = nil。这意味着在您的层次结构中没有导航控制器。
在这种情况下,您必须
present(DvC, animated: true, completion: nil)
祝好运

10-07 20:05