問題:パッドのビューがunwanted分割ビューで表示されます。
私の現在のセットアップは:Catalina OSXベータ5 + Xcode 11ベータ5
以下は、ナビゲーションビューとナビゲーションタイトルを使用したコードです。
import SwiftUI
struct SwiftUIView: View {
var body: some View {
NavigationView {
Text("Search")
.navigationBarTitle(Text("Search"))
}
}
}
#if DEBUG
struct SwiftUIView_Previews: PreviewProvider {
static var previews: some View {
SwiftUIView()
}
}
#endif
全画面表示ではなくiPad(物理デバイスとプレビューの両方)でシミュレートすると、次の分割画面ビューが表示されます。
NavigationViewがなく、ビューのみがある場合、フルスクリーンビューが表示されます。
import SwiftUI
struct SwiftUIView: View {
var body: some View {
Text("Hello World!")
}
}
#if DEBUG
struct SwiftUIView_Previews: PreviewProvider {
static var previews: some View {
SwiftUIView()
}
}
#endif
IPadでNavigationViewを全画面(分割画面ではなく)にするにはどうすればよいですか?
.navigationViewStyle(StackNavigationViewStyle())
修飾子をNavigationViewに適用できます!
...
NavigationView {
Text("Hello world!")
}
.navigationViewStyle(StackNavigationViewStyle())
...
編集:以下、私は彼のコメントからアレクサンドルの質問に答えています:
iPadのフルビューがデフォルトではないのはなぜですか?これはAppleが選択したものにすぎません...
この修飾子がNavigationViewクロージャの外側にあるのに、ナビゲーションタイトルが内側にある理由...これが明確になるかもしれません: https://stackoverflow.com/a/57400873/11432719
この分割スタイルをiPadで使用し、iPhoneで削除するには:
extension View{
func phoneOnlyStackNavigationView() ->some View{
if UIDevice.current.userInterfaceIdiom == .phone{
return AnyView(self.navigationViewStyle(StackNavigationViewStyle()))
}else{
return AnyView(self)
}
}
}