Ios 如果选项卡栏控制器位于另一个ui控制器内,如何以编程方式切换选项卡-敏捷的
您好,我是ios开发新手,尤其是在swift。基本上我只需要切换选项卡,我已经尝试了Ios 如果选项卡栏控制器位于另一个ui控制器内,如何以编程方式切换选项卡-敏捷的,ios,swift,uitabbarcontroller,Ios,Swift,Uitabbarcontroller,您好,我是ios开发新手,尤其是在swift。基本上我只需要切换选项卡,我已经尝试了tabBarController?。选择了dex=1,但似乎没有切换选项卡 上图是我的故事板,初始设置是我有splitview控制器主控台上的初始视图是tableViewController,它是A和当点击单元格的附件时,A的细节显示在splitview的细节上,当点击行本身时,显示在splitview的细节上 选项卡栏控制器更换主控制器 然后我在我的选项卡中有四个选项卡,分别是控制器选项卡B,选项卡C,选项卡
tabBarController?。选择了dex=1
,但似乎没有切换选项卡
上图是我的故事板,初始设置是我有splitview控制器主控台上的初始视图是tableViewController
,它是A
和当点击单元格的附件时,A
的细节显示在splitview的细节上,当点击行本身时,显示在splitview的细节上
选项卡栏控制器
更换主控制器
然后我在我的选项卡中有四个选项卡,分别是控制器选项卡B
,选项卡C
,选项卡D
,和选项卡E
,当点击它时,它只是一个列表,显示其各自的视图控制器作为拆分视图的详细信息,然后在选项卡E
中,我有3个按钮,每个按钮设计用于切换选项卡
注意:选项卡和详细信息嵌入到导航控制器中
我有点搞不清楚这方面的标准是什么。
有人能帮我提些意见和建议吗。原因是什么
tabBarController?.selectedIndex = 1
tabBarController?.selectedIndex=1
不工作,是因为tabBarController为零
为了获得正确的tabBarController,您必须从window对象的根获取它。
像这样的,,
var tabBarController: UITabBarController = self.window?.rootViewController as? UITabBarController
tabBarController.selectedIndex = 1
var tabBarController:UITabBarController=self.window?.rootViewController-as?超宽带控制器
tabBarController.selectedIndex=1
因为,您可能必须在导航堆栈中找到正确的tabBarController,所以还必须遍历堆栈。
从上面的故事板中,我相信您正在从Tableview didSelect加载tabbarController,因此您必须在那里获取tabbarController并在那里选择tabbar索引
希望有帮助。添加您的AppDelegate.swift:
var tabBarController:UITabBarController?
然后您可以放入另一个控制器self.tabBarController!。selectedIndex=0
在tab bar控制器的身份检查器中为我工作时,我在情节提要ID“tabBarController”中添加了一个名称。在我的操作中,我添加了实例化视图控制器和cast UITabbarController。您可以切换到所选的选项卡栏。希望这有帮助
@IBAction func buttonTapped(_ sender: Any) {
let mainStoryboard = UIStoryboard(name: "Main", bundle: Bundle.main)
let vc: UITabBarController = mainStoryboard.instantiateViewController(withIdentifier: "tabBarController") as! UITabBarController
vc.selectedIndex = 0
self.present(vc, animated: true, completion: nil)
}
我的rootviewcontroller是tableview A,因此我需要先转到切换选项卡?是的,正确,当您将tabbarcontroller添加到rootviewcontroller时,您需要切换选项卡。这个tabbar控制器是从tableview启动的,目标有点丢失,我需要先转到根控制器(tableview a),然后启动它的一个单元格,以便tabbar显示,然后切换tab?很抱歉,我不知道该怎么办。我相信您正在根据用户对tableview行的选择启动带有选定索引的tabbar,对吗?还有一件事,tabbarcontroller应该在显示时添加到window rootviewcontroller,而不是作为子视图