ios 更改初始控制器不工作

hof1towb  于 2023-07-01  发布在  iOS
关注(0)|答案(1)|浏览(78)

我正在创建一个应用程序,其中的功能,如如果用户登录,应用程序将转到主页,否则它将转到登录页面。所以我在AppDelegate中添加了下面的代码来更改初始控制器,但是我的代码不起作用。

let storyboard : UIStoryboard = UIStoryboard(name:"Main", bundle: nil)

  let navigationController : UINavigationController = storyboard.instantiateInitialViewController() as! UINavigationController
  let rootViewController:UIViewController = storyboard.instantiateViewController(withIdentifier: "MyViewController") as! MyViewController
            navigationController.viewControllers = [rootViewController]
  self.window?.rootViewController = navigationController
  self.window?.makeKeyAndVisible()

如果用户已登录,我想更改初始控制器。我想以编程方式实现我的要求,而不使用故事板

ha5z0ras

ha5z0ras1#

你可以通过删除Scene Delegate来解决你的问题,你可以注解整个类,然后还可以从App Delegate类中注解Scene Delegate的方法,比如:

/*
    func application(_ application: UIApplication, 
    configurationForConnecting connectingSceneSession: UISceneSession, 
    options: UIScene.ConnectionOptions) -> UISceneConfiguration {
   
       return UISceneConfiguration(name: "Default Configuration", 
        sessionRole: connectingSceneSession.role)
   }

    func application(_ application: UIApplication, 
     didDiscardSceneSessions 
         sceneSessions: Set<UISceneSession>) {
    }
*/

并从info.pist中删除属性Application Scene Manifest,现在运行您的代码,您将能够更改初始Controller。实际上,当我们有两个类时,场景委托将处理这些事情,因此通过删除场景委托,AppDelegate将工作

相关问题