dismissViewControllerAnimated显示白色屏幕

时间:2013-09-09 10:33:45

标签: objective-c uiviewcontroller uitabbarcontroller

我有一个名为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的创建时间很晚,与此同时我们决定使用一个故事板,以便使用storyboard创建viewControllerB的布局。

2 个答案:

答案 0 :(得分:0)

您可以删除自己(在viewcontrollerB中) [self.presentingViewController dismissViewControllerAnimated:没有完成:无];

答案 1 :(得分:-1)

如果您使用

viewControllerB展示viewControllerA
[self presentViewController:viewControllerB animated:YES completion:nil];

您应该拨打[self dismissViewControllerAnimated:YES completion:nil];中的viewControllerA,而不是TabBarViewController的其中一个页面。