Blu*_*pud 15 ios swift swiftui
所以我想使用SwiftUI呈现一个新视图,而用户不必点击按钮,因为NavigationButton可以使用它。这是一个例子
struct ContentView : View {
var model: Model
var body: some View {
NavigationView {
Text("Hello World")
}.onAppear {
if model.shouldPresent {
// present a new view
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
在onAppearI中,我想包含一些将新视图推送到导航堆栈的代码。
小智 10
这是一种将视图呈现为模态的方法。
struct PresentOnloadView: View {
var body: some View {
HStack {
Text("Hey there")
}
.presentation(Modal(HelloView(), onDismiss: nil))
}
}
struct HelloView: View {
var body: some View {
Text("Whats up! ")
}
}
Run Code Online (Sandbox Code Playgroud)
同样,如果您想控制是否使用变量显示或不显示,您可以执行以下操作..
struct PresentOnloadControlledView : View {
@State var sayHello = false
var body: some View {
HStack {
Text("What's up!")
}
.onAppear(perform: {
// Decide whether to show another view or not here
self.sayHello = true
})
.presentation(sayHello ? Modal(HelloView()) : nil)
}
}
Run Code Online (Sandbox Code Playgroud)
从版本 11.0 beta 4 开始?.presentation和Modal已被弃用。
不要担心!.sheet 省心!
struct PresentOnloadControlledView : View {
@State var sayHello = false
var body: some View {
HStack {
Text("What's up!")
}
.onAppear(perform: {
// Decide whether to show another view or not here
self.sayHello = true
})
.sheet(isPresented: $sayHello) {
HelloView()
}
}
}
Run Code Online (Sandbox Code Playgroud)