呈现特定的TabBarItem - iOS

问题描述 投票:1回答:3

我有一个带有四个UITabBarControllerTabBaritem,我在每个ViewConrollers中都留下了Menu。左侧菜单选项将显示每个ChildViewController。所以我使用NavigationController来呈现每个子视图控制器,同时点击左侧菜单行。但问题是,选定的TabBarItem不会改变,并且新选择的TabBarItem呈现在与我选择ViewController的控制器相同的ChildViewContrller中。

例如:如果我在secVC并选择左侧菜单导航到firstVC,它会在sec tabBarItem中显示firstVc。在某些功能之后,如果我再次点击sec tabBarItem,它将显示firstVC。但我必须在First 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。

ios swift uitabbarcontroller uitabbar uitabbaritem
3个回答
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

(默认情况下,选定的视图控制器应对应于选定的选项卡,包括更改时)

实际上将在该选项卡上显示视图控制器并使用选项卡栏中的选项卡栏项。以编程方式更改标签栏控制器的显示视图控制器的简便方法。

您可以在UITabbarController上查看apple的文档,并查看以下信息:

的selectedIndex

selectedViewController


2
投票

您可以直接导航到tabar控制器。试试这个:

 let mainStoryboardIpad : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
        let nav = mainStoryboardIpad.instantiateViewControllerWithIdentifier("tabBarController") as! UINavigationController
       self.navigationcontroller.pushViewController(nav, animated: true)

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

希望能帮助到你!!

© www.soinside.com 2019 - 2024. All rights reserved.