我在使用 UITabBarController 启动的应用程序正确布局时遇到了持续性问题,而每个选项卡都填充了 UINavigationController 和根子类 UIViewController:
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
let controller_1 = subclassed_view_controller()
let controller_navi_1 = UINavigationController(rootViewController: subclassed_view_controller);
//repeat for 2-4
let view_controllers = [controller_navi_1, controller_navi_2, controller_navi_3, controller_navi_4]
let tab_bar_controller = UITabBarController()
tab_bar_controller.viewControllers = view_controllers
//set up each tab's aesthetics (image and name)
self.window!.rootViewController = tab_bar_controller;
self.window!.backgroundColor = UIColor.whiteColor()
self.window!.makeKeyAndVisible()
出于某种原因,我的每个 View Controller 内容的底部都被选项卡快速覆盖了。我非常致力于以编程方式而不是通过 IB 来执行此操作,但我显然遗漏了一些推断布局。
感谢任何澄清,特别是关于不涉及使用“-20 或 -44”逻辑的方法;我觉得它对我来说太老套了。
注意 1:我曾尝试操作 .bounds 和 .clipsToBounds 但没有成功
注意 2:objective-C 中存在同样的问题,具有可比较的代码
最佳答案
在您的自定义 View Controller 中,设置:
self.edgesForExtendedLayout = .None
这会让操作系统知道不要在 bar 下扩展您的 Controller 内容。
关于objective-c - Swift 语言中的 UITabBarController、UINavigationController 和 UIViewController 间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24092618/