我有一个UITabBarController
和四个TabBaritem
,并且每个ViewConrollers中都有leftMenu。左侧菜单选项导致显示每个ChildViewController。因此,我在单击左侧菜单行时使用NavigationController展示了每个子视图控制器。
但是问题是,所选的TabBarItem
不会改变,而新的所选的TabBarItem
与我选择的控制器ViewController
出现在相同的ChildViewContrller
中。
例如:如果我在secVC中,然后选择左侧菜单以导航到firstVC 它在sec tabBarItem.sec中显示firstVc,并且在某些功能后,如果我 再次点击sec tabBarItem,它将显示firstVC。但是我有 在第一个tabBarItem中显示FirstVc
我的左侧菜单选择代码是
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)
}
任何人都可以帮助我,在点击左侧菜单行时如何显示特定的tabBarItem。
答案 0 :(得分:2)
您可以像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上查看苹果的文档,并查看以下信息:
selectedIndex
selectedViewController
答案 1 :(得分:2)
您可以直接导航到Tabar控制器。试试这个:
let mainStoryboardIpad : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let nav = mainStoryboardIpad.instantiateViewControllerWithIdentifier("tabBarController") as! UINavigationController
self.navigationcontroller.pushViewController(nav, animated: true)
答案 2 :(得分:0)
您必须将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
希望有帮助!