Ios 后退按钮有问题

Ios 后退按钮有问题,ios,swift,view,uiviewcontroller,Ios,Swift,View,Uiviewcontroller,我的后退按钮有奇怪的问题。我有两个VC。每个VC都有自己的后退按钮(它们不是默认的,它们是作为左栏按钮项添加的。当我从VC1(与主视图控制器链接,未显示)到VC2时,我看到VC2,但当我回到VC1时,我看到VC1的导航栏和VC2的视图。我需要做些什么? 我还尝试添加func,但没有效果 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if segue.identifier == "comeBack" {

我的后退按钮有奇怪的问题。我有两个VC。每个VC都有自己的后退按钮(它们不是默认的,它们是作为左栏按钮项添加的。当我从VC1(与主视图控制器链接,未显示)到VC2时,我看到VC2,但当我回到VC1时,我看到VC1的导航栏和VC2的视图。我需要做些什么? 我还尝试添加func,但没有效果

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if segue.identifier == "comeBack" {
        let backVC = self.storyboard?.instantiateViewController(withIdentifier: "CollectionVC") as! RecipeCollectionViewController
        self.navigationController?.pushViewController(backVC, animated: true)
    }
}


使用此按钮将VC1推送到VC2

let vc = self.storyboard?.instantiateViewControllerWithIdentifier("VC2") as! VC2
self.navigationController?.pushViewController(vc, animated: true)
并将其用于从VC2返回到VC1

self.navigationController?.popViewControllerAnimated(true) 

用于特定于pop的视图控制器

 let viewControllers: [UIViewController] = self.navigationController!.viewControllers
  for vc in viewControllers {
  if VC is YourViewController {
    self.navigationController!.popToViewController(vc, animated: true)
 }
}
如果弹出上一个控制器,则不使用

self.navigationController?.popViewControllerAnimated(true)

为什么要为第一个控制器设置后退按钮?它不是第一个控制器。它与主视图控制器链接。因此,当您单击VC2的自定义后退按钮时,您是否正在编写问题中显示的代码?如果是这种情况,您不应按下控制器而应弹出控制器。从第二个返回到第一个是错误的,您不需要创建另一个segue,请按下面的答案返回您只需要“self.navigationController?.popViewControllerAnimated(true)”即可返回上一个viewcontrollerI将VC1按到VC2 self.navigationController?.popViewControllerAnimated(true)在返回按钮中使用此选项