代码之家  ›  专栏  ›  技术社区  ›  Cloy

将视图控制器解除为特定视图控制器

  •  6
  • Cloy  · 技术社区  · 7 年前

    登录->主菜单->A->B->C->D

    对于从视图控制器注销,我将执行以下操作,返回登录

    func logout{
    
        self.view.window!.rootViewController?.dismissViewControllerAnimated(false, completion: nil)
     }
    

    现在我要做的是

    class AppDelegate: UIResponder, UIApplicationDelegate {
         var viewControllerStack: [BaseViewController]!
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        super.appDelegateBase.viewControllerStack.append(self)  
    }
    
    func go_To_MainMenu(){
        var countOfNumberOfViewCOntrollers = self.appDelegateBase.viewControllerStack.count 
    
            switch countOfNumberOfViewCOntrollers{
    
                 self.presentingViewController?.presentingViewController?.dismissViewControllerAnimated(true, completion: nil)
                break;
            case 2:
    
                self.presentingViewController?.presentingViewController?.presentingViewController?.dismissViewControllerAnimated(true, completion: nil)
                break;
       }
    }
    
    6 回复  |  直到 7 年前
        1
  •  8
  •   Pochi    7 年前

    至主菜单:

    self.view.window!.rootViewController?.presentedViewController?.dismissViewControllerAnimated(true, completion: nil)
    
        2
  •  1
  •   mag_zbc    7 年前

    您可以使用UINavigationController来推/弹出视图控制器,而不是显示/取消显示。这样你就可以使用UINavigationController的 popToViewController(_:animated:)

        3
  •  1
  •   Norolim    7 年前

    如果主菜单不是您的rootViewController,您可以使用Unwind Segue。看看这篇文章,希望能有所帮助。 Unwind Segue with Swift

        4
  •  0
  •   amit    7 年前

    使用 展开segue 而不是使用RootViewController。

        5
  •  0
  •   El_boogy    4 年前

    self.view.window!。rootViewController?。演示视频控制器?。解除(动画:true,完成:nil)

        6
  •  0
  •   RAHUL NIMJE    3 年前

    这对我有用

    var presentingViewController = PresentingViewController()
    self.dismiss(animated: false) {
        presentingViewController.dismiss(animated: false, completion: nil)
    }