0

我有一个名为 viewControllerA 的 ViewController,它为 ViewControllerB 提供了以下通用代码:

ViewControllerB *viewControllerB = [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil] instantiateViewControllerWithIdentifier:@"Identifier"];
[self presentViewController:viewControllerB animated:YES completion:nil];

viewControllerB 是一个 UITabbarController 但调用时

[self dismissViewControllerAnimated:YES completion:nil];

从 TabbarControllers ViewControllers 之一(比如第 2 页)我只是得到一个白屏。我期待看到 viewControllerA 但我只看到一个空屏幕。

NSLog(@"%@", [[self presentingViewController] class]);

记录 viewControllerA。

有人知道为什么我得到一个空白屏幕而不是 viewControllerA 吗?

编辑 我在 viewControllerA 中的 viewDidAppear 上放了一个断点,当调用dismissViewControllerAnimated 时它确实在那里中断。但是它怎么可能只显示一个白屏呢?

另外我认为您应该知道 viewControllerA 的布局是以编程方式创建的。viewControllerB 是在很久以后创建的,同时我们决定使用故事板,因此 viewControllerB 的布局是使用故事板创建的。

4

2 回答 2

0

您可以删除您的自我(在 viewcontrollerB 中)[self.presentingViewController dismissViewControllerAnimated:NO completion:nil];

于 2019-09-02T10:26:11.750 回答
-1

如果您viewControllerBviewControllerA使用中呈现

[self presentViewController:viewControllerB animated:YES completion:nil];

您可能应该调用[self dismissViewControllerAnimated:YES completion:nil];viewControllerA但不是从您的页面之一调用TabBarViewController

于 2013-09-09T10:47:46.023 回答