Почему всплывающее меню на панели инструментов не запускает полноэкранное покрытие на iOS26?IOS

Программируем под IOS
Anonymous
Почему всплывающее меню на панели инструментов не запускает полноэкранное покрытие на iOS26?

Сообщение Anonymous »

На одном из экранов моего приложения, когда пользователь нажимает кнопку на панели инструментов, отображается всплывающее окно со списком ссылок на файлы. При нажатии на ссылку должна появиться полноэкранная крышка, отображающая содержимое файла. Однако в iOS26 ничего не происходит, и в окне отладки я получаю следующее:

Попытка представить
на
(из
), который уже представлен
.

Вот MRE, воспроизводящий проблему:

Код: Выделить всё

import SwiftUI

struct ContentView: View
{
@State private var popoverIsPresented: Bool = false
@State private var fullScreenCoverIsPresented: Bool = false

var body: some View
{
NavigationStack
{
VStack
{
Text("FullScreenPopoverTest")
}
.toolbar
{
ToolbarItem(placement: .navigationBarTrailing)
{
VStack
{
Button("Popover")
{
self.popoverIsPresented = true
}
}
.popover(isPresented: self.$popoverIsPresented)
{
Button("Fullscreen")
{
self.fullScreenCoverIsPresented = true

//this is the only workaround that works
/*self.popoverIsPresented = false
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1)
{
self.fullScreenCoverIsPresented = true
}*/
}
}
}
}
.fullScreenCover(isPresented: self.$fullScreenCoverIsPresented)
{
Button("Dismiss")
{
self.fullScreenCoverIsPresented = false
}
}
}
}
}
Обычно на iOS18 это работает нормально. Единственный обходной путь, который я могу найти, это сделать:

Код: Выделить всё

DispatchQueue.main.asyncAfter(deadline: .now() + 0.1)
{
self.interiorDocumentToPresent = document
}
Это ошибка iOS26? Кто-нибудь знает лучшее решение?

Подробнее здесь: https://stackoverflow.com/questions/797 ... r-on-ios26

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