我的应用程序中有一个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初始化,我想这样做。
答案 0 :(得分:6)
使用显示的viewController的presentingViewController
属性
[self.presentingViewController dismissViewControllerAnimated:NO completion:nil];
presentingViewController?.dismissViewControllerAnimated(false, completion: nil)
你也可以使用这个速记版本(我不建议你这样做,但你会经常看到它)
[self dismissViewControllerAnimated:NO completion:nil];
dismissViewControllerAnimated(false, completion: nil)