self.tabBarController dismissViewControllerAnimated不起作用

Dej*_*ell 2 uitabbarcontroller uiviewcontroller ios

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

我想从一个标签,另一个UIViewController呈现.

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

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
MyViewController *chooseTemplateController = [storyboard instantiateViewControllerWithIdentifier:@"myController"];
[self.tabBarController presentViewController:myController animated:NO completion:nil];
Run Code Online (Sandbox Code Playgroud)

这很好地显示了MyViewController.

但是,我该如何解雇MyViewController?

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

[self.tabBarController dismissViewControllerAnimated:NO completion:nil];
Run Code Online (Sandbox Code Playgroud)

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

我从故事板初始化UiTabBarController,而不是从appDelegate初始化,我想保持这种方式.

fou*_*dry 6

使用提供的viewController的presentingViewController属性

Objective-C的

[self.presentingViewController  dismissViewControllerAnimated:NO completion:nil];
Run Code Online (Sandbox Code Playgroud)

迅速

presentingViewController?.dismissViewControllerAnimated(false, completion: nil)
Run Code Online (Sandbox Code Playgroud)

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

Objective-C的

[self dismissViewControllerAnimated:NO completion:nil];
Run Code Online (Sandbox Code Playgroud)

迅速

dismissViewControllerAnimated(false, completion: nil)
Run Code Online (Sandbox Code Playgroud)

请参阅
解除显示的视图控制器