在 Swift 中打开更多导航选项卡
Open More Navigation Tab in Swift
我有一个 UIHostingController
,其中包含我的 SwiftUI View
。我想 return 从 UIHostingController
.
转到更多选项卡
我试过打电话
dismiss(animated: true, completion: nil)
这是行不通的。我尝试更改选项卡栏的选择,但这当然不会转到更多选项卡。
self.tabBarController!.selectedIndex = 5
我想有一个简单的功能可以让它在我的视野中弹出,但我找不到它。
编辑:
为了进一步解释,我有一个包含多个 ViewControllers
的故事板。一个是UIHostingController
。也许这个细节并不重要,我正在尝试用 Swift 从 ViewController
打开 'more' 项的列表。 UIHostingController
虽然使用自定义导航,因此默认后退按钮不相关。
更新:
我找到的最接近的代码是:
self.tabBarController?.selectedViewController = tabBarController?.moreNavigationController
然而,这似乎并没有起作用,而是通过调用下面的代码。我能够闪烁显示 moreViewController。
self.tabBarController?.selectedViewController = tabBarController?.moreNavigationController.popViewController(animated: true)
我不知道你是如何实现 tabView 但在 SwiftUI 中,样板代码如下所示:
struct ContentView: View {
@State private var selection = 0
var body: some View {
TabView(selection: $selection){
Text("First View")
.font(.title)
.tabItem {
VStack {
Image("first")
Text("First")
}
}
.tag(0)
Text("Second View")
.font(.title)
.tabItem {
VStack {
Image("second")
Text("Second")
}
}
.tag(1)
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
在这里你可以看到selection是0,如果你把它改成1它会在你打开视图时转到第二个标签。希望这有帮助
终于发现了。这就是您 return 到 more 控制器的方式,它只是根视图。
self.navigationController?.popToRootViewController(animated: true)
我有一个 UIHostingController
,其中包含我的 SwiftUI View
。我想 return 从 UIHostingController
.
我试过打电话
dismiss(animated: true, completion: nil)
这是行不通的。我尝试更改选项卡栏的选择,但这当然不会转到更多选项卡。
self.tabBarController!.selectedIndex = 5
我想有一个简单的功能可以让它在我的视野中弹出,但我找不到它。
编辑:
为了进一步解释,我有一个包含多个 ViewControllers
的故事板。一个是UIHostingController
。也许这个细节并不重要,我正在尝试用 Swift 从 ViewController
打开 'more' 项的列表。 UIHostingController
虽然使用自定义导航,因此默认后退按钮不相关。
更新: 我找到的最接近的代码是:
self.tabBarController?.selectedViewController = tabBarController?.moreNavigationController
然而,这似乎并没有起作用,而是通过调用下面的代码。我能够闪烁显示 moreViewController。
self.tabBarController?.selectedViewController = tabBarController?.moreNavigationController.popViewController(animated: true)
我不知道你是如何实现 tabView 但在 SwiftUI 中,样板代码如下所示:
struct ContentView: View {
@State private var selection = 0
var body: some View {
TabView(selection: $selection){
Text("First View")
.font(.title)
.tabItem {
VStack {
Image("first")
Text("First")
}
}
.tag(0)
Text("Second View")
.font(.title)
.tabItem {
VStack {
Image("second")
Text("Second")
}
}
.tag(1)
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
在这里你可以看到selection是0,如果你把它改成1它会在你打开视图时转到第二个标签。希望这有帮助
终于发现了。这就是您 return 到 more 控制器的方式,它只是根视图。
self.navigationController?.popToRootViewController(animated: true)