微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

第二个故事板无法正常工作?

如何解决第二个故事板无法正常工作?

因此,我正在尝试为我的项目使用第二个故事板作为入门屏幕。当我制作第二个情节提要板时,我放入了视图控制器,并在该第二个情节提要板的初始页面上放置了一个按钮。当我运行应用程序以测试按钮时,它没有响应。按钮本身不响应。甚至不打印(“单击”)。想知道它是否出现故障,因此我删除并制作了一个新的文件,对所有失败都进行了几次。我将继续进行另一个项目,制作另一个情节提要,并安装相同的方面(vc和按钮)。可以正常运行,这两个项目之间的唯一区别是我在场景委托中拥有的代码,该代码使应用程序可以在启动屏幕上启动。 和Im实际上使用了两个情节提要,而不是引用同一情节提要中的两个vc。

所以我在想这个问题是由代码引起的吗?任何帮助将不胜感激。

这是完整的场景委托代码。 View Controller代码无关紧要,因为它们只有按钮。

    import UIKit

class SceneDelegate: UIResponder,UIWindowSceneDelegate {

 var window: UIWindow?


    func scene(_ scene: UIScene,willConnectTo session: UIScenesession,options connectionoptions: UIScene.Connectionoptions) {
        
        let launchedBefore = UserDefaults.standard.bool(forKey: "hasLaunched")
          
          
          let launchStoryboard = UIStoryboard(name: "onboarding",bundle: nil)
          let mainStoryboarrd = UIStoryboard(name: "Main",bundle: nil)
          
          var vc: UIViewController
          
          if launchedBefore{
              vc = mainStoryboarrd.instantiateInitialViewController()!
              
          }
          else{
              vc = launchStoryboard.instantiateViewController(withIdentifier: "initialboarding")
          }
          
          UserDefaults.standard.set(false,forKey: "hasLaunched")
        
          self.window?.rootViewController = vc
          self.window?.makeKeyAndVisible()
          
        // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
        // If using a storyboard,the `window` property will automatically be initialized and attached to the scene.
        // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingScenesession` instead).
        guard let windowScene = (scene as? UIWindowScene) else { return }
        window = UIWindow(frame: windowScene.coordinateSpace.bounds)
        window?.windowScene = windowScene
    }

    func sceneDiddisconnect(_ scene: UIScene) {
        // Called as the scene is being released by the system.
        // This occurs shortly after the scene enters the background,or when its session is discarded.
        // Release any resources associated with this scene that can be re-created the next time the scene connects.
        // The scene may re-connect later,as its session was not neccessarily discarded (see `application:diddiscardScenesessions` instead).
    }

    func sceneDidBecomeActive(_ scene: UIScene) {
        // Called when the scene has moved from an inactive state to an active state.
        // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive.
    }

    func sceneWillResignActive(_ scene: UIScene) {
        // Called when the scene will move from an active state to an inactive state.
        // This may occur due to temporary interruptions (ex. an incoming phone call).
    }

    func sceneWillEnterForeground(_ scene: UIScene) {
        // Called as the scene transitions from the background to the foreground.
        // Use this method to undo the changes made on entering the background.
    }

    func sceneDidEnterBackground(_ scene: UIScene) {
        // Called as the scene transitions from the foreground to the background.
        // Use this method to save data,release shared resources,and store enough scene-specific state information
        // to restore the scene back to its current state.
    }


}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。