应用未使用AppDelegate启动,didFinishLaunchingWithOptions()从未被调用

时间:2018-12-21 11:07:37

标签: uiviewcontroller uistoryboard appdelegate

我是iOS编程的新手。我正在尝试制作我拥有的iOS应用的iOS版本。

在一切正常之前,但是我添加了一个TabBarController作为主要的UIViewController,并且该应用程序在该活动中开始启动。

这是我的故事板: This is my storyboard

AppDelegate的didFinishLaunchingWithOptions():

let tokenLogin: Bool = UserDefaults.standard.bool(forKey: "tokenLogin")
if !tokenLogin {
    self.showLoginScreen()
}

因此,想法是,如果用户从未登录过,则将显示登录屏幕,并且如果登录有效,则将启动选项卡栏活动。

现在,因为从未执行过AppDelegate,所以我无法使用户登录。

任何帮助将不胜感激。

编辑:

按照DivyaS的建议,我将“主界面”更改为空白。但是didFinishLaunchingWithOptions()仍未执行(我检查了该函数的最新版本)。我在开始检查时就打印了一张,但是什么也没有。屏幕只是黑色的。 enter image description here

1 个答案:

答案 0 :(得分:1)

您需要转到目标中的“常规”选项卡,然后向下滚动到“部署信息”,然后将主界面重置为空白。

然后在AppDelegate.swift内部,您需要输入逻辑以选择“视图控制器”。 示例:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
    window = UIWindow.init(frame: UIScreen.main.bounds)
    window?.backgroundColor = UIColor.white
    if UserDefaults.sharedInstance.getIsUserLogin(){

        // user has configured his profile and he is ready to use the app
        // configure tab bar
        let vc = TabBarViewController()
        navigationController = UINavigationController.init(rootViewController: vc)

    } else {

        // user is not login 
        let vc = LoginViewController()
        navigationController = UINavigationController.init(rootViewController: vc)
    }
    window?.rootViewController = navigationController
    window?.makeKeyAndVisible()
    return true