Недавно я столкнулся с проблемой «глубокой привязки» к третьему уровню списка в представлении навигации.
Вот некоторая предыстория:
Мое приложение имеет меню настроек, основанное на списках/формах SwiftUI.
Как обычно для меню, вы можете переходить от одного элемента списка к следующему списку (на один уровень «глубже») — это реализовано NavigationLink
Поскольку список на верхнем уровне встроен в представление навигации, SwiftUI автоматически добавляет кнопку «Назад» к дочерним представлениям на нижних уровнях, чтобы вернуться на первую страницу меню.
Пока это все просто. Теперь вот что я пытаюсь сделать (см. также прикрепленную иллюстрацию):
Я хочу перейти из первого представления (возможно, также из других несвязанных представлений) непосредственно в подменю; то есть список, который находится на втором или третьем уровне моего меню.
До сих пор я установил программную навигационную ссылку, которая ссылается непосредственно на то, что на иллюстрации называется «Вид 3». Однако это не дает возможности вернуться к «Вид 2», а затем к «Вид 1» с помощью кнопок «Назад» в представлении навигации.
Теперь мой вопрос: Можно ли перейти к «Вид 3» (потенциально из любого места моего приложения) и при этом иметь возможность вернуться к «Вид 2», а затем к «Вид 1» с помощью кнопок «Назад» в представлении навигации?
Это вид 1:
Недавно я столкнулся с проблемой «глубокой привязки» к третьему уровню списка в представлении навигации. Вот некоторая предыстория: [list] [*]Мое приложение имеет меню настроек, основанное на списках/формах SwiftUI. [*]Как обычно для меню, вы можете переходить от одного элемента списка к следующему списку (на один уровень «глубже») — это реализовано NavigationLink [*]Поскольку список на верхнем уровне встроен в представление навигации, SwiftUI автоматически добавляет кнопку «Назад» к дочерним представлениям на нижних уровнях, чтобы вернуться на первую страницу меню. [/list] Пока это все просто. Теперь вот что я пытаюсь сделать (см. также прикрепленную иллюстрацию): [list] [*]Я хочу перейти из первого представления (возможно, также из других несвязанных представлений) непосредственно в подменю; то есть список, который находится на втором или третьем уровне моего меню. [*]До сих пор я установил программную навигационную ссылку, которая ссылается непосредственно на то, что на иллюстрации называется «Вид 3». Однако это не дает возможности вернуться к «Вид 2», а затем к «Вид 1» с помощью кнопок «Назад» в представлении навигации. [/list] Теперь мой вопрос: [b]Можно ли перейти к «Вид 3» (потенциально из любого места моего приложения) и при этом иметь возможность вернуться к «Вид 2», а затем к «Вид 1» с помощью кнопок «Назад» в представлении навигации?[/b] Это вид 1: [code]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) //