You tried tabBarController:shouldSelectViewController: delegate method? I hope that should help you.

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

    id currentViewController = tabBarController.selectedViewController;
    return (viewController != currentViewController);
}


If all the view controllers of the tab bar controller are UINavigationControllers, you should do it like this.

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

    id nextVC = [(UINavigationController *)viewController topViewController];
    id currentVC = [(UINavigationController *)tabBarController.selectedViewController topViewController];
    return (nextVC != currentVC);
}


Disable tap on current Tab (UITabBarController) iPhone App
I used fertilizer with iron and, unfortunately, didn't sweep adequately afterwards. Afterwards I ran my sprinklers and now my driveway and sidewalk are peppered with unsightly rust stains. What are the best ways to get it off? (By "best" I mean easiest and most efficient, while still being safe, inexpensive, and not too harmful to the nearby lawn.) Any suggestions?
