self.tabBarController dismissViewControllerAnimated不起作用

时间:2013-02-06 15:27:42

标签: ios uiviewcontroller uitabbarcontroller

我的应用程序中有一个UITabBarController。

我想从一个标签中呈现另一个UIViewController。

所以我写了ViewControllerA(这是tabviewcontroller中的一个标签):

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
MyViewController *chooseTemplateController = [storyboard instantiateViewControllerWithIdentifier:@"myController"];
[self.tabBarController presentViewController:myController animated:NO completion:nil];

这很好地显示了MyViewController。

但是,如何解除MyViewController?

我读了很多我需要打电话的问题:

[self.tabBarController dismissViewControllerAnimated:NO completion:nil];

然而 - 我在哪里打电话给它?我尝试从MyViewController - 但由于它不是UITabBar的一部分,self.tabBarController为null。

我从故事板初始化UiTabBarController,而不是从appDelegate初始化,我想这样做。

1 个答案:

答案 0 :(得分:6)

使用显示的viewController的presentingViewController属性

目标C

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

夫特

presentingViewController?.dismissViewControllerAnimated(false, completion: nil)

你也可以使用这个速记版本(我不建议你这样做,但你会经常看到它)

目标C

[self dismissViewControllerAnimated:NO completion:nil];

夫特

dismissViewControllerAnimated(false, completion: nil)


Dismissing a Presented View Controller