PageMenu pod 呈现 Modal segue 而不是 Push segue

PageMenu pod presents Modal segue instead of Push segue

This question relates to:

我知道这个问题可能与其他问题非常相似。但是我一直无法使用一些答案来解决我的问题。

这是我的故事板的样子:

viewController 有一个 segmentControl 控制两个 viewController。我现在想转到 DetailViewController,但它显示为隐藏 tabBar 和 navigationBar 的模态 segue。

我已经尝试删除并重新创建 segue,因为一些答案已经建议,但它没有解决任何问题。有什么人可以建议我或指导我吗?

编辑:

在测试了 pod 提供的演示后,我能够概述我正在努力解决的问题。我已经实现了几乎相同的相同方法。唯一的区别是我的方法 PageMenu 不像演示那样使用 nib 文件。

在我的 tableView 委托中,我试图将食谱数据传递给 DetailView。这就是我的 prepareForSeguedidSelect 的样子:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    performSegue(withIdentifier: "detail", sender: recipe)

}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "detail" {
        let vc = segue.destination as! DetailViewController
        let indexPath = tableView.indexPathForSelectedRow!
        vc.recipe = RecipeManager.shared.recipes[indexPath.row]

    }
}

这是演示的 didSelect:

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let newVC : UIViewController = UIViewController()
    newVC.view.backgroundColor = UIColor.white
    newVC.title = "Favorites"

    parentNavigationController!.pushViewController(newVC, animated: true)
}

将其与演示进行比较时,我很难理解在哪里实施 parentNavigationController!.pushViewController(newVC, animated: true),我相信这会解决我的问题。

假设您像在演示中那样实现了 parentNavigationController,那么您几乎已经准备就绪。

删除您现有的 Segue - 您将不会使用它。

为您的 DetailViewController 提供一个故事板 ID - 例如 "DetailVC"

更改您的代码以实例化 DetailVC 并将其推送到父 Nav Controller

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    if let vc = self.storyboard?.instantiateViewController(withIdentifier: "DetailVC") as? DetailViewController {
        vc.recipe = RecipeManager.shared.recipes[indexPath.row]
        parentNavigationController!.pushViewController(vc, animated: true)
    }

}