Ios 是否可以从一个选项卡栏控制器导航到另一个选项卡栏控制器?
我有一个应用程序,它有三个选项卡作为根导航,第一个选项卡中有一个表视图。因此,当用户单击表格单元格时,用户应该导航到另一个包含两个选项卡的视图。我如何做到这一点 当前情节提要Ios 是否可以从一个选项卡栏控制器导航到另一个选项卡栏控制器?,ios,swift,storyboard,tabbar,Ios,Swift,Storyboard,Tabbar,我有一个应用程序,它有三个选项卡作为根导航,第一个选项卡中有一个表视图。因此,当用户单击表格单元格时,用户应该导航到另一个包含两个选项卡的视图。我如何做到这一点 当前情节提要 这就是我目前所拥有的。我仍在学习ios开发,我想知道这是否可行是的,您可以通过此条件在单个选项卡控制器中设置任何检查,该条件是您希望从其选项卡中显示重置的选项卡。在表视图中单击行时,您可以使用如下代码: override func tableView(_ tableView: UITableView, didSelect
这就是我目前所拥有的。我仍在学习ios开发,我想知道这是否可行是的,您可以通过此条件在单个选项卡控制器中设置任何检查,该条件是您希望从其选项卡中显示重置的选项卡。在表视图中单击行时,您可以使用如下代码:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
// Segue to the other UITabBarController, pass selected information
let selectedCell = tableView.cellForRow(at: indexPath.row)
if let viewController = self.storyboard?.instantiateViewController(withIdentifier: "YourTabBarControllerIdentifier") as? YourTabBarController {
viewController.selectedIndex = 2 // or the index you want by default
viewController.modalTransitionStyle = .crossDissolve // or transition you want
self.present(viewController, animated: true, completion: nil)
}
}
从表视图中删除序列图像板序列到第二个选项卡栏控制器。并显示表视图控制器的
didSelectRowAt
方法中的第二个选项卡栏控制器。您可以像这样将数据传递给嵌入式视图控制器
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if let secondTabBarController = self.storyboard?.instantiateViewController(withIdentifier: "SecondTabBarController") as? SecondTabBarController {
if let navControllers = secondTabBarController.viewControllers as? [UINavigationController] {
if let fourthVC = navControllers.first(where: { $0.topViewController is FourthVC })?.topViewController as? FourthVC {
fourthVC.name = "name"
}
if let fifthVCvc = navControllers.first(where: { $0.topViewController is FifthVC })?.topViewController as? FifthVC {
fifthVCvc.id = 20
}
}
self.present(secondTabBarController, animated: true, completion: nil)
}
}
用正确的类名和标识符替换类名和情节提要标识符
class FourthVC: UIViewController {
var name: String?
override func viewDidLoad() {
super.viewDidLoad()
print(name)
}
}
class FifthVC: UIViewController {
var id: Int?
override func viewDidLoad() {
super.viewDidLoad()
print(id)
}
}
您可以这样做。我如何将数据传递到第二个选项卡控制器?顺便问一下,我如何获得导航栏中的“后退”按钮?因此,如果我使用nav.pushViewController()而不是present(),我想我可以正确地获得相同的行为,并将第二个选项卡控制器连接到第一个选项卡控制器navigation@SenuraSeneviratne是的,你可以用。在使用nav.pushViewController()之前,隐藏第一个选项卡控制器的导航栏,否则第二个选项卡控制器的导航栏将不可见