У меня была такая же проблема, и я нашел решение (но я нахожу его немного грязным)
В вашем ViewController
, где вы хотите отключить TabBarItem
, создайте переменную UITabBarController *myTabBarController;
со свойством.
В классе, где вы управляете вашим Tabbarcontroller
, поместите этот код в viewDidLoad
:
MyViewController * vc = (MyViewController *)[navigationController.viewControllers objectAtIndex:0];// O the index of the first view controller replace it with the index of the needed viewController
vc.myTabBarController = myTabBarController; // pass your TabBarController to your ViewController
Теперь вернемся к вашему ViewController
классу (MyViewController
) и используйте этот код для отключения tabBarItem
:
UITabBarItem *mapTabBarItem= [[myTabBarController.tabBar items] objectAtIndex:1]; // I want to desable the second tab for example (index 1)
[mapTabBarItem setEnabled:NO];
Обратите внимание, что это не лучший способ сделать это, но он работает: -)