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