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 ответ
Решение
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)