我有一个有四个TabBaritem
的UITabBarController
,我在每个ViewConrollers中都有leftMenu。左侧菜单选择导致显示每个儿童视图控制器。因此,我使用导航控制器在点击左侧菜单行时显示每个子视图控制器。但问题是,所选TabBarItem
不会更改,并且新选择的TabBarItem
以与我选择ChildViewContrller
控制器相同的ViewController
显示。
例如:如果我在 secVC 并选择左侧菜单导航到第一个VC 它在秒选项卡栏项目中首先呈现Vc,并且在某些功能之后,如果我 我再次点击秒选项卡栏项目,它将显示第一个VC。但我有 以在第一个选项卡栏中显示第一个 Vc
我的左菜单选择代码是,
if sender.tag == 0 {
let navVc = self.storyboard?.instantiateViewController(withIdentifier: "HomeVC")as? HomeVC
self.navigationController?.pushViewController(navVc!, animated: true)
}
else if sender.tag == 1 {
let navVc = self.storyboard?.instantiateViewController(withIdentifier: "TileDetailsVC")as? TileDetailsVC
navVc?.leftMenuPrdctId = 1
self.navigationController?.pushViewController(navVc!, animated: true)
}
else if sender.tag == 2 {
let navVc = self.storyboard?.instantiateViewController(withIdentifier: "OrderHistoryVC")as? OrderHistoryVC
self.navigationController?.pushViewController(navVc!, animated: true)
}
else if sender.tag == 3 {
let navVc = self.storyboard?.instantiateViewController(withIdentifier: "TileDetailsVC")as? TileDetailsVC
navVc?.leftMenuPrdctId = 3
self.navigationController?.pushViewController(navVc!, animated: true)
}
else if sender.tag == 5 {
let navVc = self.storyboard?.instantiateViewController(withIdentifier: "SettingsVC")as! SettingsVC
self.navigationController?.pushViewController(navVc, animated: true)
}
任何人都可以帮助我如何在点击左侧菜单行时呈现特定的选项卡栏项目。
正如Diksha Bhargava所说,您只需更改UITabBarController的选定索引,就会显示新的视图控制器。 更改所选索引将更改所选视图控制器,并且所选视图控制器是 UITabBarController 中显示的视图控制器,其选项卡处于选中状态。
因此,更改 UITabBarController 的选定索引会更改视图控制器和所选选项卡。
这样做:
yourUITabBarController.selectedIndex=x
//where x is the index of the desired view controller
//in the array of viewControllers the tab bar has
(默认情况下,所选视图控制器应与所选选项卡相对应,包括更改时)
实际上将在该选项卡上显示视图控制器,并在选项卡栏中使用其选项卡栏项。以编程方式更改选项卡栏控制器的显示视图控制器的简单方法。
您可以在UITabController上查看Apple的文档,并查看以下信息:
所选索引
选定视图控制器
您可以直接导航到 tabar 控制器。试试这个:
let mainStoryboardIpad : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let nav = mainStoryboardIpad.instantiateViewControllerWithIdentifier("tabBarController") as! UINavigationController
self.navigationcontroller.pushViewController(nav, animated: true)
您必须将 tabBarController selectedIndex 设置为相应的选项卡编号。例如,如果要从选项卡 1 导航到选项卡 2,则必须将 selectedIndex = 1 设置为索引从 0 开始。所以 tab1 索引是 0 tab4 索引是 3,依此类推。例如:
yourTabBarController?.selectedIndex = 1 // put your desired index number here to change the selected tab bar item
希望对您有所帮助!!