我是swiftUI的新手,只是想弄清楚基础知识。我只是试图创建一个新视图和一个将移至该视图的按钮。
当我使用下面的代码时,出现错误:尽管使用了未解析的标识符'NavigationButton',但该错误是由Xcode生成的。
import SwiftUI
struct HomeView: View {
var body: some View{
NavigationView {
NavigationButton(destination: NextView()) {
Text("Navigate 1")}
}
}
}
Run Code Online (Sandbox Code Playgroud) 我试图通过在按下 NavigationLink() 时提供一些反馈来改进用户体验。我的意思是一个简单的动画,它会增长然后缩小链接以显示它被按下或以任何其他方式提供反馈。
这是我正在尝试改进的代码:
NavigationLink(
destination: TrickView(trickId: begginerTricks[index]["trickId"] as! String),
label: {
TrickRowView(name: begginerTricks[index]["trickName"] as! String,
trickType: begginerTricks[index]["trickType"] as! String,
trickComplete: [false,false,false,false],
width: width * 0.73, height: height * 0.13)
})
.padding(.bottom, 15)
Run Code Online (Sandbox Code Playgroud)
这是导航链接列表中的一个 NavigationLink。
任何有关如何执行此操作的帮助将不胜感激。
animation user-experience ios swiftui swiftui-navigationlink
我有一个播放/暂停按钮,按下时会发生变化。目前它只是淡入淡出,但我希望它执行一个动画,看起来新颜色流过旧颜色。

这是我到目前为止所拥有的:
if(meditationViewModel.timerIsRunning){
HStack{
Image(systemName: "pause")
Text("STOP")
.bold()
}
.padding()
.foregroundColor(.white)
.background(Color.red)
.cornerRadius(25)
.shadow(radius: 20)
}else{
HStack{
Image(systemName: "play")
Text("PLAY")
.bold()
}
.padding()
.foregroundColor(.white)
.background(Color.green)
.cornerRadius(25)
}
Run Code Online (Sandbox Code Playgroud)
变化meditationViewModel.timerIsRunning发生在其他地方。
我尝试使用一个简单的导航视图,并带有指向不同视图的导航链接。运行应用程序并按下导航链接时,它会将我带到新视图。
然而,当我在模拟器或设备上时,后退按钮不起作用,而在预览中它工作正常。
有什么想法可能是什么问题吗?
import SwiftUI
struct HomeView: View {
var body: some View {
NavigationView {
VStack {
NavigationLink(destination: Text("Detail View")) {
Text("Hello World")
}
}
.navigationBarTitle("SwiftUI")
}
}
}
struct HomeView_Previews: PreviewProvider {
static var previews: some View {
HomeView()
}
}
Run Code Online (Sandbox Code Playgroud)
我认为问题可能是由于 HomeView 是 tabView 的一部分引起的。以下代码来自 AppView.swift,它是应用程序运行时运行的代码(您可以在最底部看到该代码)。
我认为这就是问题所在,因为当注释掉下面的代码时,应用程序可以正常工作。
HomeView()
.tabItem {
Image(systemName: "house.fill")
Text("Home")
}
.onTapGesture {
self.selectedTab = 2
}
.tag(2)
Run Code Online (Sandbox Code Playgroud)
@main
struct Skate_AppApp: App {
var body: some Scene {
WindowGroup {
HomeView()
}
}
}
Run Code Online (Sandbox Code Playgroud)