![](/img/trans.png)
[英]SwiftUI NavigationButton: How to navigate to different destinations
[英]SwiftUI Navigation Bar Item with different destinations
我有一個帶有添加按鈕 (NavigationBarItem) 的導航視圖,我想在每個選項卡中設置不同的導航欄項目目的地。
enum Tab: String {
case income = "Income"
case expenses = "Expenses"
case budgets = "Budget"
case investment = "Investment"
case assets = "Asset"
}
我已經嘗試將視圖作為原始值提供給結構,但這是不可能的。 我怎樣才能做到這一點?
var body: some View {
NavigationView {
TabView(selection: $selection) {
Text("Place Holder Income")
.tabItem {
Label("Income", systemImage: "star")
}
.tag(Tab.income)
.navigationBarHidden(false)
ExpensesView()
.tabItem {
Label("Expenses", systemImage: "star")
}
.tag(Tab.expenses)
.navigationBarHidden(false)
Text("Place Holder Budgets")
.tabItem {
Label("Budgets", systemImage: "star")
}
.tag(Tab.budgets)
.navigationBarHidden(false)
Text("Place Holder Investment")
.tabItem {
Label("Investment", systemImage: "star")
}
.tag(Tab.investment)
.navigationBarHidden(false)
Text("Place Holder Assets")
.tabItem {
Label("Assets", systemImage: "star")
}
.tag(Tab.assets)
.navigationBarHidden(false)
}
.navigationTitle(selection.rawValue)
.navigationBarItems(
trailing:
NavigationLink("Add", destination: AddExpensesView())
)
}
}
您可以添加一個 function(在您看來)路由到正確的目的地(取決於“選擇”屬性的值)。
@ViewBuilder func addView() -> some View {
switch selection {
case .income: Text("Income destination")
case .expenses: Text("Expenses destination")
default: Rectangle()
}
}
您的NavigationLink
調用此視圖生成器:
NavigationLink("Add", destination: addView())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.