从 xib 创建 UITabBarController 时出现黑屏

Posted

技术标签:

【中文标题】从 xib 创建 UITabBarController 时出现黑屏【英文标题】:Black screen when creating UITabBarController from xib 【发布时间】:2018-02-28 16:43:12 【问题描述】:

我尝试从 xib 创建UITabBarController。所以我在 xib 中设置选项卡项,为这样的控制器连接类和 xibs 名称。 Open image in full resolution.

然后我将 TabBarController 设置为根视图控制器。

结果,我得到一个没有标签项的黑屏。

我可以通过编程方式创建UITabBarController,所以问题是:如何才能获得我在xib 中创建的内容?

【问题讨论】:

请发布您已经拥有的内容 我们需要查看您的代码,否则我们可能只是推测。 @JacobKing 视图控制器为空。我所做的只是在 xib 中创建 UI 并在 AppDelegate 中实例化 TabBarController。 @kuzdu 我发布了我所做的一切截图。 您能提供您的 TabBarController 初始化程序的代码吗?只是想确保您正确加载笔尖,因为这是一个常见错误。 【参考方案1】:

有一种特殊的方式必须加载 nib 中的视图控制器,否则加载类时没有任何支持 UI。

TabBarController中创建如下方法:

class func instantiateFromNib() -> TabBarController 
    let nib = UINib(nibName: "TabBarController", bundle: nil)
    let vc = nib.instantiate(withOwner: nil, options: nil).first as! TabBarController
    return vc

现在,在您的 AppDelegate 中,像这样调用它:

window = UIWindow(frame: UIScreen.main.bounds)
window?.rootViewController = TabBarController.instantiateFromNib()
window?.makeKeyAndVisible()

试试这个。

【讨论】:

谢谢!它有帮助。 哦!你不能。我代表你做的:)

以上是关于从 xib 创建 UITabBarController 时出现黑屏的主要内容,如果未能解决你的问题,请参考以下文章

iOS:从 UIView 创建 XIB

根据标签长度调整从 xib 创建的视图大小

sendSubviewToBack 不适用于从 xib 创建的视图

我可以从实现文件创建 .xib 吗?

根据子视图高度调整 UITableViewCell(从 xib 创建)高度

如何创建从集合单元 xib 文件到集合视图控制器的出口