gpt4 book ai didi

ios - Swift:dismissViewController 并实例化另一个 ViewController

转载 作者:可可西里 更新时间:2023-11-01 01:37:42 29 4
gpt4 key购买 nike

我试图关闭一个 View Controller 并同时显示另一个 View Controller 。当 Level1Controller() 完成并调用 self.dismissViewController() 时,我希望它将我带到另一个名为 EndScene()< 的 View Controller .

这是让我最接近的代码。

   self.dismissViewControllerAnimated(true, completion: {() -> Void in
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let nextViewConroller = storyboard.instantiateViewControllerWithIdentifier("endscene")
self.presentViewController(nextViewConroller, animated: false, completion: nil)
})

最佳答案

不是在 Level1Controller 上调用 dismissViewControllerAnimated,而是在呈现它的 View Controller 上调用它。然后在完成 block 上,您可以按照与您相同的方式呈现 EndScene。发生该错误是因为事实上,由于您从窗口中删除了 Level1Controller,因此使用它来呈现另一个 View Controller 是没有意义的。

Window -> ParentViewController(调用 dismiss here) -> Level1Controller

窗口 -> ParentViewController(完成时显示 EndScene) -> EndScene

您可能必须通知 Level1Controller 的父级已执行取消操作,您可以通过委托(delegate)来完成。另一种选择(我没有测试它)是在 Level1Controller 中保留关闭并从 presentingViewController 呈现。

self.presentingViewController.presentViewController...

不确定 presentingViewController 在调用完成 block 时是否为 nil。

关于ios - Swift:dismissViewController 并实例化另一个 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34445489/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com