Программное использование NavigationLink в SwiftUI

Я ищу способ отображать представление в моем приложении WatchOS "на один уровень" из NavigationView при запуске приложения, если выполняются определенные условия.

Мне нужен такой же эффект, как если бы я сам нажал NavigationLink, то есть возможность снова вернуться к NavigationView, что невозможно, если я сразу же выберу отображение желаемого вида.

"navigationBarItems" также недоступен для WatchOS, что делает невозможным переход назад без фактического щелчка по ссылке NavigationLink.

Есть ли способ программно "щелкнуть" по ссылке NavigationLink для этого?

1 ответ

Решение

У меня нет опыта работы с watchOS, но я использовал вариант "isActive" NavigationLink для аналогичных приложений.

В вашем первоначальном представлении определите @State var showOneLevelIn = false(или другую привязку) и установите для этой переменной состояния значение true, если вы хотите, чтобы представление автоматически переходило на второй уровень. Ярлыком для NavigationLink является EmptyView(), поэтому он не будет виден в вашем первоначальном представлении.

NavigationLink(destination: OneLevelInView(), isActive: $showOneLevelIn, label: { EmptyView() })

Другие вопросы по тегам