我是 SwiftUI 新手,遇到以下问题。当我点击 iPhone 上的按钮时,会出现以下内容
但是当我按下 iPad 上的按钮时,会出现以下内容
选择器不在整张纸上。如何才能像在 iPhone 上一样在整个工作表上显示 iPad 上的选择器?
struct ContentView: View {
@State var value_2 = 1
@State var show_1 = false
var body: some View {
VStack {
Button(action: {
self.show_1.toggle()
}) {
Text("Push")
}
.sheet(isPresented: $show_1) {
Sheet(show_0: self.$show_1, value_1: self.$value_2)
}
}
}
}
struct Sheet: View {
@Binding var show_0: Bool
@Binding var value_1: Int
var body: some View {
NavigationView {
number(value_0: $value_1)
.navigationBarTitle(Text("Enter number"), displayMode: .inline)
.navigationBarItems(trailing: Button(action: {
self.show_0 = false
}) {
Text("Done").bold()
})
}
}
}
struct number: View {
@Binding var value_0: Int
var body: some View {
Section {
Text("Headline")
Picker("",selection: $value_0)
{
ForEach(1..<101) { value in
Text("\(value)")
}
}
}
.labelsHidden()
}
}
最佳答案
据我了解您的意图,您只需更改导航 View 的样式,例如
var body: some View {
NavigationView {
number(value_0: $value_1)
.navigationBarTitle(Text("Enter number"), displayMode: .inline)
.navigationBarItems(trailing: Button(action: {
self.show_0 = false
}) {
Text("Done").bold()
})
}
.navigationViewStyle(StackNavigationViewStyle()) // << here !!
}
关于SwiftUI:如何自定义仅适用于 iPad 的工作表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63927929/