SwiftUI 官方教程(六)

6. 在列表和詳情之間設置導航

雖然列表已經能顯示了,可是咱們還不能經過點擊單個地標來查看地標詳情頁面。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 中,並把 LandmarkDetailview 做爲目標。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

相關文章
相關標籤/搜索