PageMenu pod提供Modal segue而不是Push segue

时间:2017-06-19 18:01:09

标签: ios segue uistoryboardsegue

  

此问题与

有关

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

以下是我的故事板的外观:

enter image description here

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

我已经尝试删除并重新创建了segue,因为答案已经提出了一些建议,但它并没有解决任何问题。是否有人可以建议我或指示我?

编辑:

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

在我的tableView委托中,我正在尝试将配方数据传递给DetailView。这就是我的 prepareForSegue didSelect 的外观:

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)我认为这将解决我的问题。

1 个答案:

答案 0 :(得分:2)

假设你像在演示中那样实现了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) } } ,那么你几乎都已经完成了设置。

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

为DetailViewController提供一个故事板ID - 例如“DetailVC”

更改代码以实例化DetailVC并将其推送到父Nav控制器

x