Попытка получить доступ к контроллеру представления, который не существует в SwiftUI - PullRequest
1 голос
/ 06 ноября 2019

Я получаю странный сбой из-за довольно обычной навигации в моем приложении SwiftUI

У меня простой вид вкладки:

struct FFTabView: View {
    var body: some View {
        TabView {
            LibraryView2()
        }
        .navigationBarBackButtonHidden(true)
        .navigationBarHidden(true)
        .navigationBarTitle("", displayMode: .inline)
    }
}

// MARK: -

struct LibraryView2: View {

    var body: some View {
        VStack {
            NavigationLink(destination: Foo()) {
                Text("go to foo")
            }
        }
        .tabItem {
            Image(systemName: "square.grid.2x2.fill")
            Text("Skill Library")
        }
    }

}

struct Foo: View {
    var body: some View {
        Text("foo view")
    }
}

Когда я возвращаюсь через панель навигации, изFoo У меня сбой: Tried to pop to a view controller that doesn't exist

Есть идеи, что здесь происходит? Я не могу найти ничего, связанного с этим и SwiftUI, так что я решил опубликовать. Спасибо

1 Ответ

1 голос
/ 07 ноября 2019

Хотя вы не указали, я предполагаю, что ваш FFTabView где-то заключен в NavigationView.

В конечном итоге, ваша иерархия представлений выглядит как

NavigationView {
    TabView {
        NavigationLink {
            ...
        }
    }
}

ЕслиВы реструктурируете свою иерархию представлений так, чтобы она выглядела как

TabView {
    NavigationView {
        NavigationLink {
            ...
        }
    }
}

Сбой не происходит.

Редактировать: Я подтвердил, что это связано с регрессией / ошибкойобсужденный в этот ответ , введенный в Xcode 11.2. Ваш оригинальный код отлично работает в Xcode 11.1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...