Ios 使用selectedViewController属性以编程方式切换选项卡
我已经用过搜索了,还没有找到答案 尝试这样切换:Ios 使用selectedViewController属性以编程方式切换选项卡,ios,uitabbarcontroller,Ios,Uitabbarcontroller,我已经用过搜索了,还没有找到答案 尝试这样切换: [self. tabBarController.selectedViewController OptionsViewContorller]; [self.tabBarController.selectedViewController = self.tabBarController.viewControllers objectAtIndex:3]; 就像这样: [self. tabBarController.selectedViewC
[self. tabBarController.selectedViewController OptionsViewContorller];
[self.tabBarController.selectedViewController = self.tabBarController.viewControllers objectAtIndex:3];
就像这样:
[self. tabBarController.selectedViewController OptionsViewContorller];
[self.tabBarController.selectedViewController = self.tabBarController.viewControllers objectAtIndex:3];
但它不起作用,我也尝试和建议改变
self.tabBarController.selectedIndex
但它只在选项卡栏上更改,而不是在视图中更改。这应该可以工作
// viewControllerIndex is an int describing the position of the viewController
// in the tab bar array index
[self.tabBarController setSelectedIndex:viewControllerIndex];
self.tabBarController.selectedViewController = [self.tabBarController.viewControllers objectAtIndex:3];
这应该行得通
self.tabBarController.selectedViewController = [self.tabBarController.viewControllers objectAtIndex:3];
//我正在使用此代码切换到tabbar视图控制器0,第一个视图控制器
self.tabBarController.selectedIndex = 0;
UIViewController *controller = [self.tabBarController.viewControllers objectAtIndex:0];
if ([controller isKindOfClass:[UINavigationController class]]) {
[((UINavigationController*)controller) popToRootViewControllerAnimated:false];
}
[self.navigationController popToRootViewControllerAnimated:true];
//我正在使用此代码切换到tabbar视图控制器0,第一个视图控制器
self.tabBarController.selectedIndex = 0;
UIViewController *controller = [self.tabBarController.viewControllers objectAtIndex:0];
if ([controller isKindOfClass:[UINavigationController class]]) {
[((UINavigationController*)controller) popToRootViewControllerAnimated:false];
}
[self.navigationController popToRootViewControllerAnimated:true];
如果要从UITabBarController类切换,则必须在-VIEWDIDDEABER:动画:
希望有此帮助。如果您想从UITabBarController类中切换,则必须在-VIEWDIDEPOWER:动画: 希望对您有所帮助。对于swift 4+ 在显示视图之前,您必须获得对选项卡的引用
let tab = self.presentingViewController as! UITabBarController
self.dismiss(animated: true, completion:{
tab.selectedIndex = 2
})
斯威夫特4号+
在显示视图之前,您必须获得对选项卡的引用
let tab = self.presentingViewController as! UITabBarController
self.dismiss(animated: true, completion:{
tab.selectedIndex = 2
})
它只会在选项卡栏上更改选定的图标,但不会更改视图。如果选项卡栏图标正在更改,听起来像是在更改视图控制器-您确定选项卡栏中的视图清晰到足以识别它们的更改吗?它们完全不同。为什么会这样?图标变为活动状态,但视图不变。最好参考ios文档中的Tabster。一定是你做错了什么。我发现了问题,我的选项卡位于另一个控制器中。从该控制器工作正常,我如何从另一个控制器访问它?它只是更改选项卡栏上的选定图标,但不更改视图。如果选项卡栏图标正在更改,则听起来像是更改视图控制器-您确定选项卡栏中的视图清晰到可以识别它们的更改吗?它们完全不同。为什么会这样?图标变为活动状态,但视图不变。最好参考ios文档中的Tabster。一定是你做错了什么。我发现了问题,我的选项卡位于另一个控制器中。从该控制器工作正常,我如何从另一个控制器访问它?您使用的是哪个版本的iOS sdk?您使用的是哪个版本的iOS sdk?它只是在选项卡栏中更改选定的图标,但不更改视图。@Horhegaria是更改为正确的图标。如果图标和选项卡索引正确,请检查选定的视图控制器。点击选项卡索引,它的行为正常吗?我发现了问题,我的选项卡位于另一个控制器中。从该控制器工作正常,我如何从另一个控制器访问它?@Horhegaria使用委派模式在控制器之间进行交互它只更改所选图标选项卡栏,但不更改视图。@Horhegaria是更改为正确的图标。如果图标和选项卡索引正确,请检查选定的视图控制器。点击选项卡索引,它的行为正常吗?我发现了问题,我的选项卡位于另一个控制器中。从该控制器开始工作正常,我如何从另一个控制器访问它?@Horhegaria使用委派模式在控制器之间进行交互