我希望有一个ScrollView
,其中包含页面,下面带有导航按钮,如图here所示。
我有以下看法。
PageNav(titles: Array<String>, views: Array<AnyView>)
PageNavTop(views: Array<AnyView>)
PageNavBottom(titles: Array<String>)
PageNavButton(title: String, action: () -> Void)
假设我有两个页面,则我具有以下View
层次结构。
PageNav -> PageNavTop -> AnyView<page view 1>
-> AnyView<page view 2>
-> PageNavBottom -> PageNavButton(page title 1)
-> PageNavButton(page title 2)
PageNavTop
在滚动视图上附加了手势,因此我们可以在页面之间滑动,而PageNavBottom
则使我们可以使用按钮进行导航。
PageNav应该包含一个@State var
,在子视图中我将用作@Binding var
。但是,我使用的是自定义的init
函数,似乎无法弄清楚如何将状态传递到两个级别的按钮。
答案 0 :(得分:0)
我知道了,我快到了。
doctorId
注意struct PageNav: View {
@State var activeIndex = 0
...
PageNavTop(views: self.views, activeIndex: self.$activeIndex)
PageNavBottom(titles: self.titles, activeIndex: self.$activeIndex)
...
中的下划线,这就是我使用self._activeIndex
时出错的地方。我首先尝试使用$
,但是我当然不能使用该值。
@Binding var activeIndex: Binding<Int>