Как справиться с логикой увольнения в Swiftui?IOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Как справиться с логикой увольнения в Swiftui?

Сообщение Anonymous »

Я работаю над переоборудованием существующего приложения uikit + uiviewcontroller , основанного во время выполнения. При использовании Add Item этот вызов передается в ScenedElegate , который гарантирует, что полный стек представленных ViewControllers отклоняется и, чем представляет AddIteMViewController на rootvc. .
Как можно сделать то же самое, когда переключается на виды Swiftui? Есть ли аналогичный простой способ отказаться от всех представленных подзадач? /> Поскольку scenedelegate знает rootvc, он может просто вызвать .dismiss (...) на него. Он может использовать свойство .presentedViewController для прохождения стека презентаций до вершины и оттуда Dimiss оттуда. Просто просмотры, которые представлены как .fullScreenCover , .sheet и т. Д. Способ проверить, представлены ли какие -либо представления Sub, есть ли? Как панель вкладок, удерживая разные представления. Этот корневой вид не может просто позвонить в метод увольнения во всех своих представлениях ребенка, чтобы отклонить любые (возможно) представленные представления. конечно. Но что, если в игру вступают сторонние взгляды, где rootview не знает, представлены ли подножки или нет? < /P>

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

struct TheRootView: View {
@State private var showDetail: Bool = false

var body: some View {
VStack {
Button("Go to Detail") {
showDetail = true
}
.padding()
.fullScreenCover(isPresented: $showDetail) {
ADetailView(showing: $showDetail)
}

ThirPartyView()
}
}
}

struct ADetailView: View {
@State private var showMoreDetails: Bool = false
@Binding var showing: Bool

var body: some View {
VStack {
Button("Show more Details") {
showMoreDetails = true
}
.padding()
.fullScreenCover(isPresented: $showMoreDetails) {
Text("More Details")
Button("Close") {
showMoreDetails = false
}
}

Button("Close") {
showing = false
}
}
}
}

struct ThirPartyView: View {
@State var showCover: Bool = false

var body: some View {
Button("Do something") {
showCover = true
}
.fullScreenCover(isPresented: $showCover) {
Button("Close") {
showCover = false
}
}
}
}
В этом примере Therootview знает, когда представлен Adetaileview и может просто отклонить его. Но это не знает, если ThirpartyView представил представление Sub. и отклонить эти представленные подзадачи?

Подробнее здесь: https://stackoverflow.com/questions/794 ... in-swiftui
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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