美文网首页SwiftUI
SwiftUI 2.0 使用@AppStorage进行状态存储

SwiftUI 2.0 使用@AppStorage进行状态存储

作者: 刘铁崧 | 来源:发表于2021-02-16 16:18 被阅读0次

    新的SceneStorage属性在具有多窗口支持的应用程序(通常基于iPadOS和macOS构建)的状态恢复中非常方便。
    Unlike AppStorage, it doesn’t save data in UserDefaults. Instead, it’s just a state property that’s unique for each scene in your application.
    与AppStorage不同,它不会在UserDefaults保存数据。 相反,它只是状态属性,对于您的应用程序中的每个场景都是唯一的。

    话不多说,先上代码在看效果:

    enum Tab:String {
        case first
        case second
    }
    
    struct ContentView: View {
        @SceneStorage("selectedTab") var selectedIndex:Tab = Tab.first;
        var body: some View{
            TabView(selection:$selectedIndex){
                NavigationView{
                    Text("第一个页面").navigationTitle("首页")
                }.tabItem {
                    Image(systemName: "message")
                    Text("first")
                }.tag(Tab.first)
                
                NavigationView{
                    Text("第二个页面").navigationTitle("子页")
                }.tabItem {
                    Image(systemName: "person.2")
                    Text("second")
                }.tag(Tab.second)
            }
        }
    }
    

    效果:
    程序切除并kill掉后重新打开app,会显示上次关闭前记录的页面

    相关文章

      网友评论

        本文标题:SwiftUI 2.0 使用@AppStorage进行状态存储

        本文链接:https://www.haomeiwen.com/subject/avwvxltx.html