ナビゲーション階層のないスタンドアロンビューとしてビューを起動したい。NavigationButtonを使用したくない理由は、ユーザーが呼び出し元のフォームに戻らないようにするためです。
ScenceDelegateで最初のビューを起動する方法と同様の次のアプローチを試しましたが、何も起こりません。
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let window = appDelegate.getNewWindow()
window.rootViewController = UIHostingController(rootView: NewView())
window.makeKeyAndVisible()
ナビゲーションUIを使用しない正当な理由があります。これを短くするために、説明は省略しています。これをできるだけ単純にするために、ストーリーボードは避けています。
解決策の提案をありがとうございます。
これが私が新しいルートビューのロードを達成した方法です。
AppDelegateコードに以下を追加しました
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
...
func loadNewRootSwiftUIView(rootViewController: UIViewController)
{
let window = UIWindow(frame: UIScreen.main.bounds)
window.rootViewController = rootViewController
self.window = window
window.makeKeyAndVisible()
}
}
そして、私のフォームに以下を配置しました:
struct LaunchView : View {
var body: some View {
VStack {
Button(
action: {
LaunchLoginView()
},
label: {
Text("Login")
}
)
}
}
}
func LaunchLoginView(){
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let vContoller = UIHostingController(rootView: LoginView())
appDelegate.loadNewRootSwiftUIView(rootViewController: vContoller)
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加