Панель инструментов с UiviewControllerRepresentable Breaks Navigation в Swiftui ios 18.4+IOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Панель инструментов с UiviewControllerRepresentable Breaks Navigation в Swiftui ios 18.4+

Сообщение Anonymous »

Я вижу проблему, в которой наличие какого -либо типа UiviewControllerRepresentable на панели инструментов Swiftui заставляет навигацию сломаться. И навигация назад больше не работает (кнопка на спине меняется, как если бы была предпринята некоторая навигация, но экран не обновляется).
Это только проблема, когда задействована панель инструментов (в моем примере UiviewcontrollerReerResentable находится в фоновом режиме, но это может быть также основным представлением в инструменте. Помещение UiviewControllerRepresentable в любом месте, в моей точке зрения, не влияет на навигацию. В гостях .. < /p>
Это никогда не было проблемой раньше, но, поскольку iOS 18.4+ мы внезапно видим, что это происходит, и я не смог выяснить, почему. (Я вижу, что это происходит как на симуляторах, так и на реальных устройствах:/)
Это ошибка или я делаю здесь что -то не так? И как я бы обошел это? У меня есть какой-то пользовательский код UIKIT, который решает некоторые ограничения Swiftui, поэтому предпочтительно я могу продолжать использовать эти реализации uiviewControllerRepresentable .import SwiftUI

struct ContentView: View {
var body: some View {
NavigationView {
NavigationLinkView(layer: 1)
}
}

struct NavigationLinkView: View {
let layer: Int
var body: some View {
NavigationLink("Navigate") {
NavigationLinkView(layer: layer + 1)
}
.toolbar {
ToolbarItem(placement: .topBarTrailing) {
Image(uiImage: .checkmark)
.background(UIViewControllerRepresentableView()) // This causes navigation problems..
}
}
.navigationTitle("Layer \(layer)")
}
}
}

private struct UIViewControllerRepresentableView: UIViewControllerRepresentable {
func makeUIViewController(context: Context) -> UIViewControllerRepresentableViewController { UIViewControllerRepresentableViewController() }
func updateUIViewController(_ uiViewController: UIViewControllerRepresentableViewController, context: Context) {}
}

private final class UIViewControllerRepresentableViewController: UIViewController {
init() { super.init(nibName: nil, bundle: nil) }
@available(*, unavailable)
required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") }
}



Подробнее здесь: https://stackoverflow.com/questions/797 ... i-ios-18-4
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»