在不移除标签栏的情况下显示额外的视图控制器

Display extra view controller without removing the tab bar

我的应用有一个菜单和一个 UITabBarController。我想要做的是显示属于我的菜单但不属于 UITabBarController 的视图控制器,但是我不想删除 UITabBarController。我尝试了类似于下面的代码,但它们正在删除 UITabBarController.

tabBarViewController.selectedViewController?.presentViewController(ExtraViewController, animated: true, completion: nil)

您应该获得 UINavigationController 个选定的 ViewController,然后推送您想要展示的视图。否则,您使用 presentViewController 呈现模态视图控制器会隐藏您的 UITabBarController 视图。 我现在不在电脑前,无法 post 任何代码,但希望这对您有所帮助。

最好的方法是使用 UINavigationController。您可以以编程方式创建一个新的,并将您的菜单控制器设置为 root。

如果您将此 UINavigationController 作为 UITabBarController 中的视图之一,那么您可以执行如下代码:

[self.navigationController pushViewController:ExtraViewController animated:NO];

您也可以使用故事板来创建您的控制器层次结构:

要做到这一点 select 您的菜单控制器并转到 Xcode menu>Editor>Embed in>Navigation Controller 然后 Xcode menu>Editor>Embed in>Tab Bar Controller