SwiftUI 4: как не открывать внутренние представления при использовании NavigationStack?
Предположим, я работаю над библиотекой календарей в SwiftUI 4. В календаре есть кнопка, позволяющая пользователю выбрать месяц. Когда пользователь нажимает на эту кнопку, он переходит к представлению, в котором перечислены все месяцы, которые пользователь может выбрать. Ключевая настройка здесь заключается в том, что календарю необходимо перейти к внутреннему представлению, и я бы хотел, чтобы внутреннее представление не было видно вызывающему абоненту.
Однако с новым в SwiftUI 4 это кажется проблематичным.
Сценарий 1: если вызывающая сторона устанавливает без указания пути (то есть это непрограммный стек навигации), мы можем скрыть внутреннее представление, вызвав внутри библиотеки календаря (см. подход, обсуждаемый здесь )
Сценарий 2 : если вызывающая сторона устанавливает неоднородный путь (то есть использует ), мы можем сделать то же самое, что и в сценарии 1. Так что это тоже нормально.
Однако использование имеет ограничения. Невозможно повторить значения в пути, чтобы отфильтровать недопустимые. Например, в приложении для финансового планирования, когда пользователь удаляет учетную запись, мы хотели бы удалить подробное представление этой учетной записи в стеке навигации. В этом случае мы не можем использовать
Сценарий 3 : если вызывающий абонент устанавливаетnavigationDestination()
Поскольку мы (автор библиотеки) понятия не имеем, как вызывающая сторона будет использовать библиотеку, нам нужно поддерживать наихудший случай (сценарий 3). Это означает, что мы должны предоставить вызывающей стороне внутреннее представление.
Верно ли мое понимание выше? Кажется довольно ограничением нового