#swiftui #swiftui-navigationlink #swiftui-navigationview
Вопрос:
У меня есть настраиваемая панель вкладок, которую я реализовал в учебнике. Ниже приведен HStack для этой пользовательской панели.
struct CustomTabBar: View {
@Binding var selectedTab: String
@State var isLinkActive = true
// Storiing Each Tab Midpointts to animate it in future...
@State var tabPoints: [CGFloat] = []
var body: some View {
HStack(spacing: 0){
// Tab Bar Buttons....
TabBarButton(image: "house", selectedTab: $selectedTab, tabPoints: $tabPoints)
.background(
NavigationLink("",destination: QuickTing())
)
TabBarButton(image: "person", selectedTab: $selectedTab, tabPoints: $tabPoints)
TabBarButton(image: "gearshape", selectedTab: $selectedTab, tabPoints: $tabPoints)
}
.padding()
.background(LinearGradient(gradient: Gradient(colors: [Color.orange, Color.pink]), startPoint: .bottomLeading, endPoint: .topTrailing).clipShape(TabCurve(tabPoint: getCurvePoint() - 15))
)
.overlay(
Circle()
.fill(Color.pink)
.frame(width: 10, height: 10)
.offset(x: getCurvePoint() - 20)
,alignment: .bottomLeading
)
.cornerRadius(35)
.padding(.horizontal)
}
Всякий раз, когда я помещаю навигационную ссылку, она не показывает то представление, которое мне хотелось бы. Даже при использовании исправления emptyview() я получаю эту ошибку.
Может ли кто-нибудь указать, почему я получаю эту ошибку, а также как реализовать навигационную ссылку без ущерба для дизайна пользовательской панели.
Комментарии:
1. Если вы не используете NavigationView, то вам не следует использовать NavigationLink. Вместо этого вы, вероятно, просто хотите, чтобы регулярные
Button
изменения влияли на состояние, которое хранится где-то, определяющее, какое представление отображается.2. С точки зрения вашей синтаксической ошибки, для этого нет инициализатора
NavigationLink
, который выглядит именно так. Удалите первый параметр ( «» ), и он должен работать.3. NavigationLink работает только внутри NavigationView.