Как я могу представить лист в ответ на нажатие кнопки, которое также закрыло открытое меню?IOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу представить лист в ответ на нажатие кнопки, которое также закрыло открытое меню?

Сообщение Anonymous »


Я разрабатываю представление SwiftUI, которое содержит элементы Menu и Button, которые запускают представление листа.

Я заметил странный эффект: если нажатие кнопки, которое обычно отображает лист, происходит, когда Меню в данный момент представлено, лист не отображается. Более того, последующие нажатия также не отображают лист. Когда это происходит, я вижу следующее зарегистрированное сообщение:

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

Это происходит только при быстром нажатии на кнопку модального представления — при более длительном нажатии все работает как положено.

Полное приложение, демонстрирующее такое поведение, выглядит следующим образом:

импортировать SwiftUI @основной структура менюAndButtonApp: Приложение { var body: некоторая сцена { ОкноГруппа { КонтентПросмотр() } } } структура ContentView: Просмотр { @State var modalIsPresented = false var body: some View { HStack(интервал: 28) { Меню("Открыть меню") { Текст("Пункт меню") } Button("Настоящее модальное окно") { модальныйIsPresented = правда } }.sheet(isPresented: $modalIsPresented) { Text("Вот лист") } } } Это очень похоже на ошибку SwiftUI, но я ищу альтернативный подход или обходной путь, который позволит мне предотвратить это раздражающее поведение. (Один обходной путь, который я подтвердил, — это обернуть действие кнопки в DispatchQueue.main.asyncAfter(.now() + 0.2) { , чтобы дать время для закрытия контекстного меню, но я бы сделать это безоговорочно, потому что я не могу определить, отображается ли контекстное меню в любой момент.
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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