起動した時にログイン中でなかったら、のコードを表示したいのですが、そのコードを書いたのにもかかわらず、上手く行きません。何がダメなんでしょうか?
プログラミング初心者のため、しょぼい質問でしたらすいません。
import UIKit import NCMB @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? //アプリが起動した時 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { let applicationKey = "秘密" let clientKey = "秘密" NCMB.setApplicationKey(applicationKey , clientKey: clientKey ) let ud = UserDefaults.standard let isLogin = ud.bool(forKey: "isLogin") if isLogin == true{ //ログイン中だったら self.window = UIWindow(frame: UIScreen.main.bounds) let storyboard = UIStoryboard(name: "Main", bundle: Bundle.main) let rootViewController = storyboard.instantiateViewController(withIdentifier: "RootTabBarController") self.window?.rootViewController = rootViewController self.window?.backgroundColor = UIColor.white self.window?.makeKeyAndVisible() }else{ //ログインしていなかったら self.window = UIWindow(frame: UIScreen.main.bounds) let storyboard = UIStoryboard(name: "Signn", bundle: Bundle.main) let rootViewController = storyboard.instantiateViewController(withIdentifier: "RootNavigationController") self.window?.rootViewController = rootViewController self.window?.backgroundColor = UIColor.white self.window?.makeKeyAndVisible() } return true } // MARK: UISceneSession Lifecycle func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { // Called when a new scene session is being created. // Use this method to select a configuration to create the new scene with. return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) } func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) { // Called when the user discards a scene session. // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. // Use this method to release any resources that were specific to the discarded scenes, as they will not return. } }
print文を挟みifがどっちに流れているか、
また、直接print(isLogin)とし、値を確認してみてください。
コード読んでなくて申し訳ないのですが、
SceneDelegateについての対応はされましたか?
https://qiita.com/omochimetaru/items/31df103ef98a9d84ae6b
対応済みでしたらごめんなさい
あ〜
ikawashima41さんの回答がありましたので、
初回起動時にuserDefaultに初期値(この場合はfalseかな?)を設定してあげてみてください。
https://qiita.com/Kyome/items/2bb24909ec12d5a48e14
これはAppDelegateでいいと思います。
回答2件
あなたの回答
tips
プレビュー