在 AppDelegate 中实例化 UINavigationController

Posted

技术标签:

【中文标题】在 AppDelegate 中实例化 UINavigationController【英文标题】:Instantiate UINavigationController in AppDelegate 【发布时间】:2015-07-18 18:51:53 【问题描述】:

我正在尝试在我的AppDelegate 中用rootViewController 实例化UINavigationController。我看过这个网站,但所有的例子都来自 Objective-C 或使用的故事板(我试图摆脱)。 'HomeScreenController` 是应用程序的根视图。

编辑:这会显示在控制台中

2015-07-18 14:42:25.376 FastFactsSwift[4749:343495] Failed to instantiate the default view controller for UIMainStoryboardFile 'Main' 
- perhaps the designated entry point is not set?

我该如何解决这个问题?


以下代码只导致黑屏:

AppDelegate.swift:

import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate 

var window: UIWindow?


func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool 
    // Override point for customization after application launch.

    self.window?.rootViewController = UINavigationController(rootViewController: HomeScreenController())

    return true

...

HomeScreenController.swift:

import UIKit

class HomeScreenController: UIViewController, UISearchBarDelegate, UITableViewDelegate
    override func viewDidLoad()

        super.viewDidLoad()

        var width = self.view.viewWidth
        var height = self.view.viewHeight

        //Add stuff to the view

...

为什么HomeScreenController 显示为黑屏?

【问题讨论】:

【参考方案1】:

问题在于没有将AppDelegate 配置为不使用情节提要。

How do I create a new Swift project without using Storyboards?

【讨论】:

以上是关于在 AppDelegate 中实例化 UINavigationController的主要内容,如果未能解决你的问题,请参考以下文章

Swift - 在 AppDelegate 中实例化视图控制器

在 Swift 5.0 中从 AppDelegate 实例化窗口失败 [重复]

AppDelegate 在启动时最后实例化

如何从 AppDelegate 实例化 UIViewController?

我可以在我的 appdelegate applicationDidFinishLaunching 中插入 UINavigationController 并在我的笔尖实例化的 UITabBarContr

我们可以在AppDelegate中实例化核心数据的单个对象并在整个应用程序中使用它吗?