呈现特定的TabBarItem-iOS

时间:2019-01-23 06:25:51

标签: ios swift uitabbarcontroller uitabbar uitabbaritem

我有一个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。

3 个答案:

答案 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

希望有帮助!