【发布时间】:2019-01-18 12:59:33
【问题描述】:
计算机科学专业的学生在这里尝试学习 Swift。抱歉提前提供图片链接。显然我还不允许嵌入图像。我正在玩一个使用导航控制器和标签栏控制器的应用程序。初始视图(我将其称为 root)嵌入到导航控制器中,例如 this。这是因为我希望能够在某个时候回到我的根视图。
Root 连接到具有两个选项卡的选项卡栏控制器,我将它们称为 1A 和 2A。 1A 和 2A 都连接到另一个 VC,我将其称为 1B 和 2B。我已将 1A 和 2A 嵌入到它们自己的导航控制器中,例如 this,以便我可以在 A 和 B 之间导航。如果我保持原样,1 和 2 的导航栏将与 this 之类的根导航栏重叠。因此,我想将导航栏 1 和 2 的高度更改为刚好在根导航栏下方,例如 this。
我尝试在 1A 和 2A 的 viewDidLoad 方法中使用以下代码来完成此操作,但没有做任何事情。
override func viewDidLoad() {
super.viewDidLoad()
let bounds = self.navigationController!.navigationBar.bounds
self.navigationController?.navigationBar.frame = CGRect(x: 0, y: 0, width: bounds.width, height: 100)
}
我已经阅读了苹果关于导航控制器和栏等的文档。我在这里访问了各种线程,但我还没有找到针对我的问题的解决方案。也许我错过了一些如此基本的东西,以至于毫无疑问。无论如何,一个例子和解释将不胜感激。谢谢
【问题讨论】:
-
不。你不能那样做。如果这样做,比如说,你以最可定制的方式进行,用户会认为你的应用程序有错误。每个屏幕只能有一个导航栏!
-
推到tabbaController时隐藏根navigationController的navigationBar,popToRoot时显示
-
Apple 会拒绝这个,看看他们的指导方针:developer.apple.com/design/human-interface-guidelines/ios/bars/…
-
@Glenn 最终,我将用类似主页图标的东西替换根后退按钮,以便它成为主页按钮,然后下面是后退按钮。这仍然是不可接受的吗?
标签: ios swift uinavigationcontroller uitabbarcontroller uinavigationbar