提问人:JOHNY 提问时间:8/9/2023 最后编辑:JOHNY 更新时间:8/9/2023 访问量:41
导航控制器栏无缘无故低
Navigation controller bar is low for no reason
问:
我创建了一个选项卡栏控制器,其中有 4 个导航控制器,每个控制器包含一个视图控制器,但在这些视图控制器上,栏标题非常低。无论我是否选择大标题,问题与常规标题相同。 是因为标签栏吗?
有人知道如何解决它吗?当我为导航栏设置自定义框架时,它没有任何影响。 当我推送一个新的视图控制器时,我们无法与屏幕前 25% 中的任何内容进行交互(可能是因为它位于导航栏标题后面,即使我将其设置为无)。这真的很奇怪,我如何将标题设置得更高或只是禁用它们?
这也是我的场景委托中的内容:
let storyboard = UIStoryboard(name: "TabBar", bundle: nil).instantiateViewController(withIdentifier: "Main") as! UIViewController
let navigation = UINavigationController(rootViewController: storyboard)
window?.rootViewController = navigation
window?.makeKeyAndVisible()
标识符为“Main”的视图控制器实际上是情节提要顶部的选项卡栏,所以也许我的场景委托有问题,但我不知道为什么这会对导航栏的位置产生影响。
答:
0赞
SaTisH ShiYaNi
8/9/2023
#1
检查您是否选择了“首选大标题”(如果,请取消选中)。
评论
0赞
JOHNY
8/9/2023
问题是一样的。标题仍然很低
0赞
SaTisH ShiYaNi
8/9/2023
请分享您的 navigationBar Attribute Inspector 屏幕截图。
1赞
DonMag
8/9/2023
#2
您的问题中的这段代码:
// instantiate the UITabBarController with identifier "Main"
// from Storyboard named "TabBar"
let storyboard = UIStoryboard(name: "TabBar", bundle: nil).instantiateViewController(withIdentifier: "Main") as! UIViewController
// create a new UINavigationController, with the
// instantiated UITabBarController as its Root View Controller
let navigation = UINavigationController(rootViewController: storyboard)
// show the navigation controller
window?.rootViewController = navigation
window?.makeKeyAndVisible()
所以,你有:
- 导航控制器(带有自己的导航栏)
- 拿着标签栏控制器
- 每个选项卡都有自己的导航控制器和导航栏
将您的代码更改为此(尽管它非常令人困惑的对象命名):
// instantiate the UITabBarController with identifier "Main"
// from Storyboard named "TabBar"
let storyboard = UIStoryboard(name: "TabBar", bundle: nil).instantiateViewController(withIdentifier: "Main") as! UIViewController
// show the tab bar controller
window?.rootViewController = storyboard
window?.makeKeyAndVisible()
可是。。。为什么不直接在项目设置中设置它?为什么要从代码中加载?
评论
0赞
JOHNY
8/10/2023
是的,这就是问题所在,谢谢你的回答。我在场景委托中执行此操作,因为我有一个 Firebase 身份验证条件来呈现视图控制器。
评论
Root
TabBarController
NavigationController
Root
NavigationController
TabBarController