Вы не можете использовать UIViewController с SwiftUI, в SwiftUI представления являются структурными.
Шаг для изменения начального представления в SwiftUI
- Открыть SceneDelegate (Not AppDelegate)
- Upate scene (_ scene: UIScene, willConnectTo session: UISceneSession, параметры connectionOptions: UIScene.ConnectionOptions) fun c как показано ниже
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
let contentView = SignInInputView()
if let windowScene = scene as? UIWindowScene {
let window = UIWindow(windowScene: windowScene)
window.rootViewController = UIHostingController(rootView: contentView)
self.window = window
window.makeKeyAndVisible()
}
}
, где SignInInputView является Stuct, как показано ниже
struct SignInInputView: View {
@State private var userNameString: String = ""
@State private var passwordString: String = ""
var body: some View {
HStack {
Spacer(minLength: 20)
VStack(alignment: .leading, spacing: 20) {
TextField("Enter UserName/Password", text: $userNameString, onEditingChanged: { (value) in
print(value)
}, onCommit: {
print(self.userNameString)
}).frame(height: 60)
.padding([.leading, .trailing], 20)
.background(Color.red)
TextField("Enter Password", text: $passwordString, onEditingChanged: { (value) in
print(value)
}, onCommit: {
print(self.passwordString)
}).frame(height: 60)
.padding([.leading, .trailing], 20)
.background(Color.green)
}
Spacer(minLength: 20)
}
}
}