SwiftUI: как выполнить «глубокую ссылку» на второй/третий уровень списка в представлении навигацииIOS

Программируем под IOS
Ответить
Anonymous
 SwiftUI: как выполнить «глубокую ссылку» на второй/третий уровень списка в представлении навигации

Сообщение Anonymous »

Недавно я столкнулся с проблемой «глубокой привязки» к третьему уровню списка в представлении навигации.
Вот некоторая предыстория:
  • Мое приложение имеет меню настроек, основанное на списках/формах SwiftUI.
  • Как обычно для меню, вы можете переходить от одного элемента списка к следующему списку (на один уровень «глубже») — это реализовано NavigationLink
  • Поскольку список на верхнем уровне встроен в представление навигации, SwiftUI автоматически добавляет кнопку «Назад» к дочерним представлениям на нижних уровнях, чтобы вернуться на первую страницу меню.
Пока это все просто. Теперь вот что я пытаюсь сделать (см. также прикрепленную иллюстрацию):
  • Я хочу перейти из первого представления (возможно, также из других несвязанных представлений) непосредственно в подменю; то есть список, который находится на втором или третьем уровне моего меню.
  • До сих пор я установил программную навигационную ссылку, которая ссылается непосредственно на то, что на иллюстрации называется «Вид 3». Однако это не дает возможности вернуться к «Вид 2», а затем к «Вид 1» с помощью кнопок «Назад» в представлении навигации.
Теперь мой вопрос: Можно ли перейти к «Вид 3» (потенциально из любого места моего приложения) и при этом иметь возможность вернуться к «Вид 2», а затем к «Вид 1» с помощью кнопок «Назад» в представлении навигации?
Это вид 1:

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

struct SwiftUIView1: View {
var body: some View {
NavigationView {
VStack {
List {
NavigationLink("Link", destination: SwiftUIView2())
Text("TBD")
Text("TBD")
}
.navigationTitle("View 1")
Button("Jump to view 3", action: XXX) //  

Подробнее здесь: [url]https://stackoverflow.com/questions/67406300/swiftui-how-to-deep-link-to-the-second-third-level-of-a-list-in-a-navigation[/url]
Ответить

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

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

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

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

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