我正在探索 Xcode 12 和 SwiftUI 2.0 中的新事物
我在 Xcode 12、iOS 14、Swift UI 2 中创建了一个带有 TabView 和 PageTabViewStyle 的页面浏览载入屏幕。我想在点击它时添加下一个按钮,页面应该移动到第二个视图。这里Text("Hello")。
struct OnBoardingView: View {
var body: some View {
TabView {
Text("Hi")
Text("Hello")
Text("Welcome")
}
.tabViewStyle(PageTabViewStyle())
.indexViewStyle(PageIndexViewStyle(backgroundDisplayMode: .always))
}
}
Run Code Online (Sandbox Code Playgroud) 我想在用户注销时刷新根视图,但在新的无场景 SwiftUi 2 下找不到如何执行此操作。
接下来是@Swissmark发布的解决方案,我试图在 SwiftUI 2 中实现:
let contentView = AppRootView(showingView: ShowingView(showingView: appStartView))
if let windowScene = scene as? UIWindowScene {
let window = UIWindow(windowScene: windowScene)
window.rootViewController = UIHostingController(rootView: contentView)
self.window = window
window.makeKeyAndVisible()
}
Run Code Online (Sandbox Code Playgroud) 我知道这个问题以前曾被问过,我发现了其中一些,但我的略有不同。
我发现这个例如:
如果你在同一个 Swift 文件上有struct ContentView: View {...}
和,那么它就可以正常工作。struct FirstView: View {...}
但在我的项目中,我有struct ContentView: View {...}
一个 Swift 文件和struct FirstView: View {...}
另一个单独的 Swift 文件。
因此,当我@Binding var tabSelection: Int
在FirstView()
文件中使用时,我的 ContentView 文件中出现此错误:Argument passed to call that takes no arguments
有人可以就这个问题提出建议吗?