虽然列表已经能显示了,可是咱们还不能经过点击单个地标来查看地标详情页面。SwiftUI教程swift
把 list
嵌入一个 NavigationView
中,并把每一个 row
嵌套在一个 NavigationButton
中来设置到目标 view 的转场,这样 list
就具备了导航功能。闭包
6.1 把自动建立地标的 list
嵌入到一个 NavigationView
中。ide
LandmarkList.swiftspa
import SwiftUI struct LandmarkList: View { var body: some View { NavigationView { List(landmarkData) { landmark in LandmarkRow(landmark: landmark) } } } } struct LandmarkList_Previews: PreviewProvider { static var previews: some View { LandmarkList() } }
调用 navigationBarTitle(_:)
方法来设置 list
显示时导航栏的标题。code
LandmarkList.swiftblog
import SwiftUI struct LandmarkList: View { var body: some View { NavigationView { List(landmarkData) { landmark in LandmarkRow(landmark: landmark) } .navigationBarTitle(Text("Landmarks")) } } } struct LandmarkList_Previews: PreviewProvider { static var previews: some View { LandmarkList() } }
6.3 在 list
的闭包中,把返回的 row
包装在一个 NavigationButton
中,并把 LandmarkDetail
view 做为目标。SwiftUI教程教程
LandmarkList.swiftit
import SwiftUI struct LandmarkList: View { var body: some View { NavigationView { List(landmarkData) { landmark in NavigationButton(destination: LandmarkDetail()) { LandmarkRow(landmark: landmark) } } .navigationBarTitle(Text("Landmarks")) } } } struct LandmarkList_Previews: PreviewProvider { static var previews: some View { LandmarkList() } }
6.4 切换到实时模式后能够直接在预览中尝试导航功能。单击 Live Preview
按钮,而后点击地标来访问详情页面。io