Nig*_*LxD 8 scene ios swiftui ipados
我一直在研究 SwiftUI 并从这个WWDC20 视频中了解应用程序、场景和视图。我试图通过一个示例应用程序来理解这些概念,该应用程序显示电影列表并帮助预订电影。
iOS和iPadOS SwiftUI项目有以下App:
@main
struct HelloIOSSwiftUIApp: App {
// Attach the app delegate to the swiftUI app
@UIApplicationDelegateAdaptor
var appDelegate: AppDelegate
var body: some Scene {
MovieListScene()
}
}
Run Code Online (Sandbox Code Playgroud)
从上面的代码可以推断出HelloIOSSwiftUIApp有一个名为MovieListScene的场景。因此,要向应用程序添加新场景,
@main
struct HelloIOSSwiftUIApp: App {
// Attach the app delegate to the swiftUI app
@UIApplicationDelegateAdaptor
var appDelegate: AppDelegate
var body: some Scene {
MovieListScene()
BookMovieScene()
.handlesExternalEvents(matching: ["book movie"])
}
}
Run Code Online (Sandbox Code Playgroud)
现在声明了两个场景,SwiftUI 启动应用程序并显示第一个场景的内容。
在上面的两个示例中,应用程序的场景都是在编译时声明的。那么,如何动态地向应用程序添加/删除新场景呢?我想从配置文件中读取一些数据并决定是否应显示特定场景。我怎样才能实现这种行为?或者应用程序应该在编译时声明所有可能的场景(如上所示)?
我知道 SwiftUI 视图可以通过使用@State、@StateObject和@ObservedObject属性@Published包装器在运行时更新。SwiftUI 视图是其状态的函数......因此更新状态可以更改视图。我怎样才能对场景做同样的事情?
| 归档时间: |
|
| 查看次数: |
141 次 |
| 最近记录: |