如何将导航控制器嵌入到标签栏控制器

时间:2016-06-17 10:25:13

标签: ios swift navigationbar tabbar

我的初始视图控制器是一个标签栏控制器。我想让标签栏位于底部的顶部(我使用self.tabBarController?.tabBar.frame完成)。我想在标签栏上方显示一个导航栏。任何人都可以请我这样做

3 个答案:

答案 0 :(得分:1)

UITabBar应该始终位于屏幕的底部。 有第三方实现的东西类似于android标签,可能就是你要找的东西。

例如,请查看https://github.com/HighBay/PageMenu

答案 1 :(得分:0)

您可以使用以下代码之一

实例化视图控制器
let VC1 = self.storyboard?.instantiateViewControllerWithIdentifier("storyboardID") as! DemoViewController

OR

let VC2 = YourViewController() 

如果您的视图控制器是在界面bulider中定义的,那么请使用第一个,然后使用第二个。

现在为tabBarController构造视图数组我把NavigationController作为元素,rootViewController是我实例化的VC。

let tab1 = UINavigationController(rootViewController: VC1)

let tab2 = UINavigationController(rootViewController: VC2)

像这样描述tabBarItem图像

tab1.tabBarItem = UITabBarItem(title: nil, image: UIImage(named: "unselectedImage")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal), selectedImage: UIImage(named: "selectedImage")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)) 

最后描述tabBar数组

self.viewControllers = [tab1,tab2]  //This will create tabBar with 2 tabs

您的导航控制器将显示在顶部。您可以自定义导航栏。为此,请参阅this

另外,不要忘记让tabBarController成为AppDelegate中的rootViewController。否则你将违反Apple指南。

希望这会有所帮助。 :)

答案 2 :(得分:0)

我的建议是make viewcontroller并使用UISegmentController执行导航栏下面的Tab Bar Actions ..





谢谢