我需要拦截一个UITabBar点击精确,这样我就可以有条件地中止移动到预期的ViewController(即有条件地忽略点击)。
我在故事板中创建了我的UITabBar。 UITabBar是我整个应用程序的根视图。 tabBar项目之一是个人资料页面(可以这么说)。如果用户还没有帐户,我想忽略他们点击该特定tabBar项目。我寻求的行为是用户不会离开他们所在的当前ViewController进入选中的Tab。但相反,我希望他们能够进入注册页面。我有什么想法可以做这个拦截吗?
更新
我已经设法在AppDelegate中添加以下方法。调用该方法,但不截获转换。我如何拦截和中止过渡?
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
NSLog(@"Intercept tabBarController in app delegate tap gesture but then do nothing");
}
打印NSLog行,但仍会发生转换。
答案 0 :(得分:2)
听起来你正走在正确的道路上。 But you should use
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
如果您需要更多帮助,请与我们联系。
答案 1 :(得分:0)
您需要使用tabBar:didSelectItem:
例如:
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
// Use the item to do further
}