如何从 iOS 应用程序中删除场景委托?

32 ios swift

我在 Xcode 11.1 中创建了 iOS 项目。我需要从应用程序中删除场景委托。

Man*_*nav 88

您需要执行以下步骤:

  1. 从 App Delegate 中删除 Scene 委托方法并删除 Scene 委托文件。
  2. 您需要从 Info.plist 中删除 UIApplicationSceneManifest。

var window:UIWindow?如果 AppDelegate 中不存在,您还需要添加

  • 带图片的指南 /sf/answers/4223057401/ (4认同)
  • 使用Objecitve C,我们需要在AppDelegate中添加一个window属性 (2认同)
  • 添加相同。谢谢 (2认同)

Ngu*_*uấn 54

  1. 删除SceneDelegate.swift文件
  2. Application Scene ManifestInfo.plist文件中删除
  3. 添加var window: UIWindow?到 AppDelegate.swift
  4. @main用。。。来代替@UIApplicationMain
  5. 删除UISceneSession Lifecycle( 函数 ) 中AppDelegate


mil*_*czi 23

它是使用 Xcode 生成的空项目的完整解决方案(带故事板)

  1. 删除SceneDelegate.swift文件
  2. Application Scene ManifestInfo.plist文件中删除
  3. 将此代码粘贴到您的AppDelegate.swift文件中

import UIKit

@main
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window:UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        self.window = UIWindow(frame: UIScreen.main.bounds)
        window?.rootViewController = UIStoryboard(name: "Main", bundle: nil).instantiateInitialViewController()
        window?.makeKeyAndVisible()

        return true
    }
}
Run Code Online (Sandbox Code Playgroud)


Ami*_*ant 14

添加到milzi 的 答案

  1. 删除 SceneDelegate.swift 文件
  2. 从 Info.plist 文件中删除应用程序场景清单
  3. 从 AppDelegate 类中删除 UISceneSession Lifecycle 函数
  4. 添加var window: UIWindow?您的 AppDelegate 类作为实例属性
  5. @main用属性替换@UIApplicationMain属性(这保存为手动创建和分配窗口)

以下是更改后 AppDelegate 的外观:

import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        return true
    }


}
Run Code Online (Sandbox Code Playgroud)


小智 7

要添加到已接受的答案:您还需要在 AppDelegate 中写入:

 self.window = UIWindow(frame: UIScreen.main.bounds)
 let controller = MyRootViewController()
 window?.rootViewController = controller
 window?.makeKeyAndVisible()
Run Code Online (Sandbox Code Playgroud)