- 此问题在此处已有答案**:
How to remove Scene Delegate from iOS Application?(6个答案)
昨天关门了。
编辑
我在创建项目时错误地选择了"多平台"而不是"iOS"。
只需选择"iOS"来创建项目,事情将以传统方式完成。
我想在Xcode 14.2中启动一个新项目,只使用AppDelegate和UIKit,不使用SwiftUI和SceneDelegate。Xcode 13之前的方法似乎不起作用。
1.在Xcode 14.2中创建新项目
2.添加应用程序委托. swift
import UIKit
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
window = UIWindow(frame: UIScreen.main.bounds)
window!.rootViewController = MyViewController()
window!.makeKeyAndVisible()
return true
}
}
3.添加我的视图控制器. swift
import UIKit
class MyViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .systemGreen
print("viewDidLoad() called.")
print("frame:", view!.frame)
}
}
当应用程序启动时,预计会出现绿色屏幕,但显示的是黑色屏幕。
打印语句输出正确。
此时,将出现以下警告。
将UIApplicationSceneManifest
键添加到Info.plist
将删除此警告,但黑屏仍将存在。(以前,不使用多个窗口的应用不需要此键。
[SceneConfiguration] Info.plist contained no UIScene configuration dictionary (looking for configuration named "(no name)")
我错过了什么简单的东西?
1条答案
按热度按时间bvhaajcl1#
我假设您希望通过初始化
UIViewController
来调用应用,并且不太关心底层的UIResponder
对象。通过选择
Storyboard
作为所需的界面首选项来创建一个新项目(毕竟您不会使用故事板)。然后将你的第一个视图控制器添加到窗口对象中。如果你想访问你的AppDelegate,你可以从下面的任何地方进行。
如果您有意省略
UIWindowSceneDelegate
是出于其他原因,例如支持iOS 12,请纠正我