Как вывести sh на новый экран после увольнения листа модели в SwiftUI? - PullRequest
0 голосов
/ 28 февраля 2020

Мне нужно реализовать как Чтобы создать экран входа в систему на экране, пользователь может ввести номер мобильного телефона и щелкнуть на листе модели кнопки входа в систему, чтобы открыть верхнюю проверку после того, как лист проверки OTP должен быть отклонен и перейти на панель инструментов.

Здесь я создал представление контента для этого контента. Нажмите кнопку Открыть модель , лист модели (sheetView) откроется после нажатия * 1009. * готово лист кнопок будет отклонен, чем при переходе по экрану с ContentView на DashboardView .

// ContentView

struct ContentView: View {

    @State var isAction: Bool = false
    @State var isDashboard: Bool = false

    var body: some View {

        NavigationView{

            Button(action: {
                self.isAction.toggle()
            }) {
                Text("Open Model")
            }.sheet(isPresented: $isAction) {

                sheetView(isDissmis: self.$isAction) { (isNavigateOnDashboard) in

                    print(isNavigateOnDashboard ?? false)

                    return self.isDashboard = isNavigateOnDashboard ?? false
                }
            }
            NavigationLink(destination: DashboardView(), isActive: self.$isDashboard) {
                EmptyView()
            }
        }
    }
}

// sheetView: - он представлен как modalPresentationStyle в виде листа.

struct sheetView: View {

    @Binding var isDissmis: Bool
    var isNavigateDashboard: ((Bool?)) -> Void?
    var body: some View {

        NavigationView{
            Text("Here i have to verifiy Some details")
                .navigationBarItems(trailing: doneButton)
        }
    }

    var doneButton: some  View {

        Button(action: {
            self.isDissmis = false
            self.isNavigateDashboard(true)
        }) {
            Text("Done").bold()
        }
    }
}

// Панель инструментов: - после отклонения модели (лист) экран должен быть на навигационной панели.

struct DashboardView: View {

    var body: some View {

        TabView{

            Text("Home").tabItem{
                Image(systemName: "1.circle")
                Text("Home")
            }

            Text("Activity").tabItem{
                Image(systemName: "2.circle")
                Text("Activity")
            }
            Text("profile").tabItem{
                Image(systemName: "3.circle")
                Text("profile")
            }
        }
    }
}

Есть какие-либо подсказки для этого? ??

1 Ответ

1 голос
/ 29 февраля 2020

Таким образом, вы можете изменить ContentView body, и когда вы отклоните представление листа, он также перейдет к DashboardView

, и вам не нужно будет использовать обратный вызов clouser в вашем SheetView


var body: some View {
        NavigationView{
            VStack {
                Button(action: {
                    self.isAction.toggle()
                }) {
                    Text("Open Model")
                }.sheet(isPresented: $isAction, onDismiss: {
                    self.isDashboard.toggle()
                }) {
                    sheetView(isDissmis: self.$isAction)
                }
                NavigationLink(destination: DashboardView(), isActive: $isDashboard) {
                    EmptyView()
                }
            }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...