删除 SceneDelegate 后在 AppDelagate 中设置 rootviewcontoller
Setting rootviewcontoller in AppDelagate after deleting SceneDelegate
我删除了 SceneDelegate.swift 并从 .plist 文件中删除了相关条目。
因为我的项目不支持 iPad,所以我不需要任何 SceneDelegate 东西。我说的对吗?
我用的是 SwiftUI,所以也没有 Storyboard
现在在 AppDelegate 文件中
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
self.window = UIWindow(frame: UIScreen.main.bounds)
if (TegKeychain.get("ISLOGGEDIN") == "1") {
//present WelcomeScreen.swift
} else {
//present Login.Swift
}
return true
}
其他文件
struct Login: View {
var body: some View {
Text("Login")
}
}
struct WelcomeScreen: View {
var body: some View {
Text("WelcomeScreen")
}
}
我在网络上进行了搜索,但没有找到任何有关如何在没有故事板的情况下呈现视图控制器的有用信息。任何帮助将不胜感激。
这是我为从模板创建的新 SwiftUI iOS 项目回滚场景支持所做的检查清单:
从 Info.plist
中删除 UIApplicationSceneManifest 键
从 AppDelegate 中删除所有与场景会话相关的委托方法
移除场景代理
更新 AppDelegate 如下
import UIKit
import SwiftUI
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
let contentView = ContentView() // << default Hello World
// Use a UIHostingController as window root view controller.
let window = UIWindow(frame: UIScreen.main.bounds)
window.rootViewController = UIHostingController(rootView: contentView)
self.window = window
window.makeKeyAndVisible()
return true
}
}
- 构建 & 运行 - 有效。
我删除了 SceneDelegate.swift 并从 .plist 文件中删除了相关条目。
因为我的项目不支持 iPad,所以我不需要任何 SceneDelegate 东西。我说的对吗?
我用的是 SwiftUI,所以也没有 Storyboard
现在在 AppDelegate 文件中
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
self.window = UIWindow(frame: UIScreen.main.bounds)
if (TegKeychain.get("ISLOGGEDIN") == "1") {
//present WelcomeScreen.swift
} else {
//present Login.Swift
}
return true
}
其他文件
struct Login: View {
var body: some View {
Text("Login")
}
}
struct WelcomeScreen: View {
var body: some View {
Text("WelcomeScreen")
}
}
我在网络上进行了搜索,但没有找到任何有关如何在没有故事板的情况下呈现视图控制器的有用信息。任何帮助将不胜感激。
这是我为从模板创建的新 SwiftUI iOS 项目回滚场景支持所做的检查清单:
从 Info.plist
中删除 UIApplicationSceneManifest 键
从 AppDelegate 中删除所有与场景会话相关的委托方法
移除场景代理
更新 AppDelegate 如下
import UIKit
import SwiftUI
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
let contentView = ContentView() // << default Hello World
// Use a UIHostingController as window root view controller.
let window = UIWindow(frame: UIScreen.main.bounds)
window.rootViewController = UIHostingController(rootView: contentView)
self.window = window
window.makeKeyAndVisible()
return true
}
}
- 构建 & 运行 - 有效。