带按钮的SwiftUI NavigationLink

时间:2020-05-11 19:23:49

标签: swiftui swiftui-navigationlink

我有以下代码,单击圆形按钮中的任何位置,视图都会更改。但是,self.user.day += 1操作仅在我直接单击按钮文本时才执行。这对我来说是非常奇怪的行为,尤其是Swift和SwiftUI的新功能。

NavigationLink(destination: NewsView(), tag: 1, selection: $selection){
    Button(action: {self.selection = 1; self.user.day += 1}){
        Text("News").font(.body)
    }
    .frame(width: 100.0, height: 100.0)
    .foregroundColor(Color(red: 0.96, green: 0.96, blue: 0.47))
    .background(Color.black)
    .cornerRadius(90)
}

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:0)

无论您的按钮有多大,SwiftUI都不会在空白区域检测到点击,这不包括NavigationLink

一种简单的方法,就是将框架设置为文本而不是像这样的按钮

Button(action: { print("tapped"); self.selection = 1 }) {
    Text("News").font(.body)
        .frame(width: 100.0, height: 100.0)
}
    //.frame(width: 100.0, height: 100.0)
    .foregroundColor(Color(red: 0.96, green: 0.96, blue: 0.47))
    .background(Color.black)
    .cornerRadius(90)