虽然应用程序是通用的,但iPad屏幕是空白的。我已经添加了检查iPhone和iPad。在iPhone中运行应用程序时工作正常,但在ipad中没有显示任何内容。
struct UserListView: View {
var userName:String
@State var searchString:String = ""
var body: some View {
VStack {
SearchBar(text: $searchString)
.padding()
.frame(height:44)
.foregroundColor(Color.white)
.background(Color.gray)
List(userList) { user in
NavigationLink(destination:UserDetailView(userObj:user)) {
UserListRow(userObj: user)
}.navigationBarTitle("User Detail")
}
}
}
}
将此修饰符添加到导航视图,它应该可以工作:
NavigationView {
}.navigationViewStyle(StackNavigationViewStyle())
屏幕可能是空白的,因为未选择任何内容,并且详细信息视图中没有任何内容,因此您会看到空白的详细信息视图。如果从屏幕左侧向内轻扫,隐藏的母版视图将滑过,您可以选择一个项目以查看主视图中的详细信息。
我希望这是一个 SwiftUI 错误(至少缺少功能(,因为我认为没有人希望拆分视图像这样工作。
我找到了一个简单的解决方法!
如果您只检查设备类型,然后插入iPad机箱的空视图,则空视图将插入到功能架中,并显示您的目标视图。
struct NotificationsControlView: View {
var body: some View {
NavigationView{
if UIDevice.current.userInterfaceIdiom == .pad {
EmptyView()
NotificationsView().navigationViewStyle(.stack)
.navigationBarTitleDisplayMode(.inline)
.hiddenNavigationBarStyle()
} else {
NotificationsView()
.navigationViewStyle(.stack)
.navigationBarTitleDisplayMode(.inline)
.hiddenNavigationBarStyle()
}
}.navigationViewStyle(StackNavigationViewStyle())
}
}