移动回父视图控制器或解除子视图控制器。

问题描述 投票:0回答:1

点击按钮时,我从一个控制器导航到另一个控制器。我最初做的是 self.present(nextViewController, animated:true, completion:nil) 而且它覆盖了整个设备上的窗口。由于我希望它的大小与我的主控制器(呈现)相同,下面是我现在用来呈现新控制器的代码。

从父控制器导航到NewViewController。

@IBAction func doneButtonAction(_ sender: Any) {
        let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
        let nextViewController = storyBoard.instantiateViewController(withIdentifier: "MyViewID") as! NewViewController
        nextViewController.view.frame = self.view.bounds
        nextViewController.willMove(toParent: self)
        self.view.addSubview(nextViewController.view)
        self.addChild(nextViewController)
        nextViewController.didMove(toParent: self)
        //self.present(nextViewController, animated:true, completion:nil)
    }

这样做很好,可以将我导航到NewViewController控制器。但是现在从NewViewController控制器中,我希望回到这个父控制器,而我的解雇逻辑却没有工作。

从NewViewController返回父控制器

@IBAction func backButtonAction(_ sender: Any) {
    self.dismiss(animated: true, completion: nil)
}

我缺少什么?我如何回到父控制器?

ios uiviewcontroller
1个回答
0
投票

实际上,你要做的是在整个窗口上呈现,修改 modalPresentationStyle 的财产 nextViewController.

let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let nextViewController = storyBoard.instantiateViewController(withIdentifier: "MyViewID") as! NewViewController
nextViewController.modalPresentationStyle = .fullScreen
present(nextViewController, animated: true)

将此代码添加到 doneButtonAction 并以老办法呈现。

© www.soinside.com 2019 - 2024. All rights reserved.