Я вижу проблему, в которой наличие какого -либо типа 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
Панель инструментов с UiviewControllerRepresentable Breaks Navigation в Swiftui ios 18.4+ ⇐ IOS
Программируем под IOS
1753213663
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") }
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79710982/toolbar-with-uiviewcontrollerrepresentable-breaks-navigation-in-swiftui-ios-18-4[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия