拦截UITabBar水龙头

时间:2014-08-22 11:40:07

标签: ios xcode5 uitabbarcontroller segue uitabbar

我需要拦截一个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行,但仍会发生转换。

2 个答案:

答案 0 :(得分:2)

听起来你正走在正确的道路上。 But you should use

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController

如果您需要更多帮助,请与我们联系。

答案 1 :(得分:0)

您需要使用tabBar:didSelectItem:

UITabBar delegate

例如:

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
   // Use the item to do further
}