gpt4 book ai didi

ios - 无法从 UITabBarController 中关闭 UIViewController

转载 作者:行者123 更新时间:2023-11-29 03:43:10 29 4
gpt4 key购买 nike

我有一个 iOS 应用程序,其根目录有一个 UITabBarController(具有三个选项卡)。

在 viewDidAppear 的第一个选项卡中:如果用户尚未注册,我将显示以下内容以显示 RegisterViewController:

UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
RegisterViewController *registerViewController = [mainStoryboard instantiateViewControllerWithIdentifier:@"RegisterView"];
[registerViewController setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
[self presentViewController:registerViewController animated:NO completion:nil];

当用户点击 RegisterViewController 中的“注册”按钮时,一旦收到 HTTP 响应,它就会显示 QuestionnaireViewController。

当点击 QuestionnaireViewController 中的“提交”按钮时,我可以通过以下方式关闭此按钮:

[[self presentingViewController] dismissViewControllerAnimated:YES completion:nil];

然后我发布一个 RegisterViewController 正在监听的通知:

[[NSNotificationCenter defaultCenter] postNotificationName:UserHasCompletedQuestionnaireNotification object:nil];

现在,这就是我的问题所在 - 当 RegisterViewController 听到通知时,我尝试忽略它,但不能。

我尝试过各种驳回它的含义,例如:

[[self tabBarController] dismissViewControllerAnimated:YES completion:nil];

什么也不做,并且:

[[self presentingViewController] dismissViewControllerAnimated:YES completion:nil];

出现以下错误:

attempt to dismiss modal view controller whose view does not currently appear. self = <RegisterViewController: 0x8525ea0> modalViewController = <UINavigationController: 0x74545e0>
attempt to dismiss modal view controller whose view does not currently appear. self = <UITabBarController: 0x8320060> modalViewController = <RegisterViewController: 0x8525ea0>

希望有人能够告诉我我在这里做了一些愚蠢的错误。

谢谢,尼克

最佳答案

而不是:

[[self presentingViewController] dismissViewControllerAnimated:YES completion:nil];

如果您想同时关闭两个 Controller ,您可以消除通知,然后执行此操作(从 QuestionnaireViewController):

[self.presentingViewController.presentingViewController dismissViewControllerAnimated:YES completion:nil];

如果我正确理解你的结构, self.presentingViewController.presentingViewController 应该是第一个选项卡中呈现 RegisterViewController 的 Controller 。忽略它也会忽略它所呈现的任何内容。

关于ios - 无法从 UITabBarController 中关闭 UIViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18088848/

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