iOS - 设置 'rootViewController' 仅在设备上导致黑屏

标签 ios swift

对于一个非常基本的单 View 应用程序,我已经删除了主 Storyboard文件并删除了对它的所有引用。因此,我以编程方式设置窗口 rootViewController。但是,虽然这会在模拟器中正确显示单个 View (包含标签),但在设备上运行时会显示黑屏。这是该应用程序的唯一代码。

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?


    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        window = UIWindow(frame: UIScreen.main.bounds)
        window?.rootViewController = DummyViewController()
        window?.makeKeyAndVisible()
        return true
    }

我已经从 info.plist 文件中删除了主 Storyboard的条目,以及常规设置中的“主界面”条目。

我正在使用 Swift 3 并以 iOS 8 设备为目标。我正在使用 XCode 8.3.1。

控制台没有输出,也没有异常。 viewDidLoad 函数甚至在断点处触发,因此代码路径似乎运行正确。

有什么想法吗?

根据要求,这是 DummyViewController 的基本代码。

class DummyViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
    }
}

常规设置未显示对主界面的引用 enter image description here

这是链接到 DummyViewController 的 .xib 图像 enter image description here

** 绕过这种情况的解决方案是手动指定要为 DummyViewController 加载的 .xib **

最佳答案

看起来 ViewController 没有设置为显示任何内容。除非您使用的是 xib(在这种情况下,您需要以不同的方式加载 View Controller ,请参见下文),否则没有任何内容描述 ViewController 的 View 应如何呈现。

要对此进行测试,您可以将行 self.view.backgroundColor = UIColor.red 添加到 ViewController 的 viewDidLoad() 方法中,然后在device- 如果背景颜色变成红色,万岁!下一步将以编程方式添加 UILabel。


从 XIB 加载 UIViewController

let vc = MyViewController(nibName: "xibname", bundle: nil)

或者,您可以通过在 MyViewController 中添加自定义初始化来屏蔽加载:

class MyViewController: UIViewController {
    required init() {
        super.init(nibName: "xibname", bundle: nil)
    }
}

(感谢zonily-jame在类中添加隐藏)

关于iOS - 设置 'rootViewController' 仅在设备上导致黑屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43445822/

相关文章:

ios - 使用场景停靠栏的 View 不会在水平 ScrollView 中复制自身

ios - 如何快速刷新照片库?

ios - 如何在 Swift 应用程序中使用带有框架的 Realm(与 Ca​​rthage 一起安装)?

ios - 在 iOS 8 中确定互联网速度的正确方法

ios - 编码/解码 base64 解码数据 = nil

ios - 在 UITableViewController 中将 UIView 放在 UITableView 前面

ios - (ios-charts)在不使用 Storyboard的情况下无法在 UICollectionView 中显示折线图

ios - 使用 Firebase/Analytics pod 时 SwiftUI 预览不起作用

ios - 当前模态/表单不显示内容,始终返回空/空白

ios - button.isHidden 在再次点击按钮 View (背景)后再次消失