当用户单击行时,我想对详细视图执行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)
祝好运