移回父视图控制器或关闭子视图控制器



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

从父控制器导航到新视图控制器:

@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)
}

这工作正常,并将我导航到NewView控制器控制器。但是现在从NewViewController控制器,我希望回到这个父控制器,我的消除逻辑不起作用。

从 NewViewController 返回到父控制器

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

我错过了什么?如何返回父控制器?

要在整个窗口中呈现,您实际上必须做的是修改nextViewController的属性modalPresentationStyle

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

将此代码添加到doneButtonAction并以旧方式呈现。

相关内容

  • 没有找到相关文章

最新更新