如何点击一个按钮跳转到tabbar控制器的一个界面上

如图片所示


如何点击一个按钮跳转到tabbar控制器的一个界面上_第1张图片

我需要点击个人中心然后跳转到“我的”tabbar里面,肯定不是用push,因为那样不符合需求。所以应该用另外一种方式

在首页这个界面获取到你的tabbar控制器,然后让tabbar的selectedIndex等于你要跳转的那个tabbar就行了

MHIXTabBarController *tabbar = (MHIXTabBarController *)[UIApplication sharedApplication].keyWindow.rootViewController;

tabbar.selectedIndex = 3;

这里有个小问题,我是通过把tabbar设置为根控制器,然后获取到的,如果你的根控制器不是tabbar,那你必须要在完成一系列操作之后把tabbar控制器换成根控制器,

比如在这里我就是在登录完成之后设置的

MHIXTabBarController *tabbarVC = [[MHIXTabBarController alloc] init];

app_Delegate.window.rootViewController = tabbarVC;

这里的app_Delegate是个宏,别误导大家了

#define app_Delegate ((AppDelegate *)[UIApplication sharedApplication].delegate)

这里还有个问题  你在登录完成之后立马把控制器换成tabbarController 是没有动画的,会卡顿一下,所以我还是投机取消的先presentViewController过去再换的,顶多再设置一下一秒延迟。。。至于我这种方法可不可取 ,那就仁者见仁智者见智了。

MHIXTabBarController *tabbarVC = [[MHIXTabBarController alloc] init];

[self presentViewController:tabbarVC animated:YES completion:nil];

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

app_Delegate.window.rootViewController = tabbarVC;

});

你可能感兴趣的:(如何点击一个按钮跳转到tabbar控制器的一个界面上)