如何将自定义视图与 TabBar 集成?
Posted
技术标签:
【中文标题】如何将自定义视图与 TabBar 集成?【英文标题】:How to integrate custom view with TabBar? 【发布时间】:2014-08-12 14:14:28 【问题描述】:我希望任何地方都有一些教程,或者任何 O'Reily Cookbooks 都会解释这一点,但每个人都只谈论过使用 UITabBarController。
然而,我在我的应用程序中需要的是一个自定义视图(基本 UIViewController),其中包含一个 NavigationBar(仅用于标题栏和一个“完成”按钮)和一个 TabBar。
问题是:如何集成 TabBar 并将视图连接到每个栏按钮(并添加更多栏按钮)?这只能以编程方式完成还是可以在 Storyboard 中完成?哪个类需要是 TabBarDelegate(我想我的自定义 UIViewController)?
有没有人知道这方面的好指南或给我一些提示?
谢谢。
更新:
我决定简单地在 TabBarDelegate 中检查 tabBar.selectedItem.tag 并相应地从情节提要中实例化一个子视图,并将其添加到夹在我的导航栏和底部标签栏之间的 ContainerView 中。到目前为止这有效(尽管我不确定是否没有更好的方法)但现在我面临一个不同的问题:
当一个子视图加载到 ContainerView 中时,整个标签栏就会消失。有人知道为什么会这样吗?
【问题讨论】:
检查标签栏是否为零。检查标签栏超级视图是否为零。 检查。他们都不是零。我怀疑它与自动布局有关。我为此问题创建了一张新票:***.com/questions/25281013/… 【参考方案1】:使用 Storyboard 创建 Tab Bar Controller 应用程序非常容易。 Apple 甚至提供了一个 sn-p :) 创建新项目时,只需选择 ios -> 应用程序 -> 选项卡式应用程序。
另外,这里有一个很好的教程:https://www.youtube.com/watch?v=RhsHtd6rAiQ。
【讨论】:
呃,你看我上面的描述了吗?选项卡式应用程序模板使用现成的 TabBarController。但这不是我需要的。 那么Tab Bar就没有问题了吗?然后您应该将您的问题命名为“如何将导航栏添加到视图控制器”。 这里的区别在于 TabBar(在我的情况下放在 UIViewController 中)和 TabBarController 之间。这两个是不同的组件。 那么答案是,这可以通过编程方式完成,是的。无法讲述有关故事板的任何内容。 嘿@kelin 我同时将它与代码集成。你知道为什么标签栏会消失吗(见上面的更新说明)?【参考方案2】:通过在其中创建一个带有 UIViewController 的 Xib 并放置一个 UITabBar 和一个 UIView 作为子视图的容器,我自己解决了原始问题。然后使用 NSBundle.mainBundle().loadNibNamed() 加载 xib 并为应该加载的子视图创建 Xib 并使用 loadNibNamed() 加载它们并使用 viewContainer.addSubview() 添加它们。
【讨论】:
以上是关于如何将自定义视图与 TabBar 集成?的主要内容,如果未能解决你的问题,请参考以下文章