gpt4 book ai didi

ios - 有没有办法在呈现另一个ViewController之后将其关闭?

转载 作者:行者123 更新时间:2023-12-01 16:36:54 27 4
gpt4 key购买 nike

经过一段时间的寻找答案后,我不得不承认我对这种情况非常困惑。

在工作中,我被要求做一些非常具体的事情:

我必须在先前的UIViewController上呈现一个UIViewController,实际上,当前的ViewController在第二个出现之前就关闭了自身。这给整个事情带来了一个有趣的动画,一个ViewController下降,然后又从底部上升。但是...并不是真正的“专业版”,在动画制作过程中,我们可以在幕后看到rootViewController。

因此,我必须精确地确定,没有NavigationController,在我看来,这会使它变得容易得多,所以我不得不使用两个UIViewController来做到这一点,并且有我的实际代码:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil];
UIViewController *controller = [storyboard instantiateViewControllerWithIdentifier:@"userViewController"];
[[UIApplication sharedApplication].keyWindow.rootViewController presentViewController:controller animated:YES completion:^{
[self dismissViewControllerAnimated:YES completion:nil];
}];

它是在按下按钮后立即调用的,因此我认为实际的ViewController viewDidLoad或viewDidAppear没有问题。

但是每次运行此代码时,都会出现以下错误:
[1163:17641] Warning: Attempt to present <UserViewController: 0x7b0f0a00> on <EIHomeViewController: 0x7b0d2a00> whose view is not in the window hierarchy!

我真的不知道如何设法跟踪当前的UIViewController以便在下一个ViewController viewDidAppear中关闭它,以确保屏幕上不会出现“停电”。

提前谢谢你的帮助!

最佳答案

试试这个代码:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil];
UIViewController *controller = [storyboard instantiateViewControllerWithIdentifier:@"userViewController"];
[self dismissViewControllerAnimated:NO completion:^{
[[UIApplication sharedApplication].keyWindow.rootViewController presentViewController:controller animated:NO completion:nil];
}];

关于ios - 有没有办法在呈现另一个ViewController之后将其关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27420125/

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