在基于标签栏的应用程序上添加导航栏
Posted
技术标签:
【中文标题】在基于标签栏的应用程序上添加导航栏【英文标题】:Adding Navigation Bar on Tab-Bar Based App 【发布时间】:2015-12-04 09:53:21 【问题描述】:我有一个基于标签栏的应用程序,我想在应用程序顶部添加导航栏。请注意,我正在使用一个名为 PageMenu 的库,它在 1 个父 ViewController 中创建 2 个 TableView。
我尝试的是,添加一个新的 ViewController 和 Editor->Embed in Navigation Bar。放在Tab Bar Controller之前,ctrl+拖动到Tab Bar Controller设置根视图的关系。最后将导航栏控制器设置为初始视图控制器。但这失败了:
(顶部变得非常奇怪,模糊,PageMenu 的子标题消失了。也许是在那个模糊的东西下面,因为我仍然可以在 2 个表格视图之间滑动。
其次,我尝试删除导航控制器,并手动将导航栏添加到视图控制器。这适用于表视图和视图控制器,但不适用于 PageMenu。当我在 PageMenu Controller 上尝试时,它没有显示任何导航栏。
请注意,在 Demo 中,他们使用 Navigation Bar 作为 Parent 和 sub-TableViews,他们用这个以及 Storyboard > Navigation Controller 实现了 Navigation Bar:
override func viewDidLoad()
super.viewDidLoad()
self.title = "HEADER"
self.navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.whiteColor()]
self.navigationController?.navigationBar.tintColor = UIColor.whiteColor()
最后,我尝试了..
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
let nav1 = UINavigationController()
let first = ViewController(nibName: nil, bundle: nil)
nav1.viewControllers = [first]
let second = SecondViewController(nibName: "SecondViewController", bundle: nil)
let nav2 = UINavigationController()
nav2.viewControllers = [second]
let tabs = UITabBarController()
tabs.viewControllers = [nav1, nav2]
self.window!.rootViewController = tabs;
self.window?.makeKeyAndVisible();
return true
但我得到的结果是:
我想要实现的(但使用 TabBarController;NavBar 仅用于标题):
我现在拥有的是这个。我只想像上面的 PageMenu 示例一样在其顶部添加 NavigationBar
更新: 最后,我也尝试过:
但同样的问题:
【问题讨论】:
简而言之,你想要PageMenu
和UITabBarController
吗?
我编辑了问题。请检查以下。我想要的就像 instagram。标题、页面菜单和标签栏。我的 tabBar 和 PageMenu 工作正常,我只是无法添加 NavigationBar
【参考方案1】:
您还可以创建类似的故事板来帮助解决您的问题。
在这里,我可以创建示例代码,您不希望单行代码更改,而是仅更改为情节提要。
Download source code from here.
【讨论】:
我尝试了您的解决方案。导航栏 > 选项卡栏 > 导航栏 > 视图。但我又收到了那个模糊的东西。 i.stack.imgur.com/sDZsP.png @senty 如果您对我的回答满意,请接受我的回答。【参考方案2】:不添加编辑器->在标签栏控制器之前嵌入导航栏中 在从 Tab Bar 控制器连接的 View 控制器之前添加 Editor->Embed in Navigation Bar。
因为它适用于特定的 Tab Vise,所以我们必须在视图控制器之前添加 Editor->Embed in Navigation Bar
【讨论】:
所以我应该让 Tab Bar 扩展到 4x NavController & 每个 NavController 到每个 View。?喜欢TabBarController-> 1) NavBar -> View1 -> TableView1+2 , 2) NavBar -> View2 -> TableView3+4 , 3) NavBar -> View3 , 4) NavBar->View4
?
我尝试了同样的问题。我将它添加到问题的底部
确定查看控制器模拟矩阵 Topbar 是否为 None?如果没有,则选择红外线
如何检查? :s 如果我理解正确,所有视图中的所有内容都是推断的
developer.apple.com/library/ios/recipes/…查看此链接以上是关于在基于标签栏的应用程序上添加导航栏的主要内容,如果未能解决你的问题,请参考以下文章