Как запустить SwiftUI View без отслеживания обратной навигации? - PullRequest
0 голосов
/ 15 июня 2019

Я хочу запустить вид как автономный вид без иерархии навигации. Причина, по которой я не хочу использовать NavigationButton, заключается в том, что я не хочу, чтобы пользователь возвращался к форме вызова.

Я пробовал следующий подход, который похож на первый запуск в ScenceDelegate, но ничего не происходит:

    let appDelegate = UIApplication.shared.delegate as! AppDelegate
    let window = appDelegate.getNewWindow()
    window.rootViewController = UIHostingController(rootView: NewView())
    window.makeKeyAndVisible()

У меня есть законная причина не использовать навигационный интерфейс, поэтому я опускаю объяснение, чтобы не повторяться. Я избегаю раскадровки, чтобы сделать это как можно более простым.

Спасибо за любые предложения по решению.

1 Ответ

1 голос
/ 15 июня 2019

Вот так я и завершил загрузку нового корневого представления.

Я добавил следующее в код 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)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...