objective-c - Swift 语言中的 UITabBarController、UINavigationController 和 UIViewController 间距

标签 objective-c uiviewcontroller uitabbarcontroller swift bounds

我在使用 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/

相关文章:

objective-c - AVCaptureSession和AudioQueue

ios - 如何从 View 获取数据到 UITabBarController

ios - 在两个 tabbarcontroller 之间进行 Segue

ios - block 初始化的 ViewController 提前释放

ios - 单击 UITabBarItem 时如何选择显示哪个 UIViewController?

ios - UIPopoverController 在 iOS 8/Xcode 6 中没有关闭

objective-c - 从 NStimeInterval 准确转换为 CMTime

ios - 影片开始播放后,从UIWebView播放youtube影片时当机

objective-c - 在 View Controller 子类上添加导航 Controller

ios - 将 Storyboard View 添加为 subview 时发送到已释放实例的消息