Создание полноэкранного навигационного представления в SwiftUI для iPad

Если в SwiftUI вы хотите использовать NavigationViewв полноэкранном режиме на iPad, вы можете добиться этого, изменив NavigationViewStyleи используя собственный заголовок панели навигации. Режим отображения. Вот один из способов создания полноэкранного NavigationViewв SwiftUI:

  1. Измените NavigationViewStyle, чтобы использовать собственный стиль, скрывающий панель навигации на iPad. Вы можете создать собственный стиль, согласовав протокол NavigationViewStyleи реализовав необходимые методы. В методе makeBodyустановите для модификатора navigationBarHiddenзначение true, если устройством является iPad.
struct FullScreenNavigationViewStyle: NavigationViewStyle {
    func _body(configuration: NavigationViewStyleConfiguration) -> some View {
        configuration.content
            .navigationBarHidden(UIDevice.current.userInterfaceIdiom == .pad)
    }
}
  1. Примените пользовательский стиль представления навигации к вашему NavigationViewс помощью модификатора navigationViewStyle.
NavigationView {
    // Your view hierarchy
}
.navigationViewStyle(FullScreenNavigationViewStyle())
  1. Чтобы иметь собственный режим отображения заголовка панели навигации, вы можете использовать модификатор .navigationBarTitleDisplayMode. Например, вы можете установить для него значение .inline, чтобы заголовок отображался на панели навигации.
NavigationView {
    // Your view hierarchy
}
.navigationViewStyle(FullScreenNavigationViewStyle())
.navigationBarTitleDisplayMode(.inline)

Такой подход позволяет иметь полноэкранный NavigationViewна iPad, при этом отображая панель навигации на других устройствах.