- Published on
记录一个iOS和macOS使用导航的区别
- Authors
- Name
- sakuragi
记录一个iOS和macOS使用导航的区别
iOS的用法
List {
ForEach(groupedArticles[index], id: \.id) { article in
NavigationLink(value: article) {
ArticleItemView(article: article)
}
}
}
.navigationDestination(for:Article.self) { article in
TypingView(article:article)
.toolbar(.hidden, for: .tabBar)
}
macOS的用法
List(selection: $selected) {
ForEach(groupedArticles[index], id: \.self) { article in
ArticleItemView(article: article)
}
}
其中的区别是在List中是否需要传 selection,如果是通过NavigationLink的方式,不需要传 selection参数。因为其中的选中项的处理是由 NavigationLink + navigationDestination来决定的
如果在macOS中,不使用NavigationLink,我们采用的是NavigationSplit方案,如果我们的List是处于其中的ContentView,我们会通过selection来决定NavigationSplit中的detailView中的数据。所以需要传入selection。