Очень поздний ответ на очень старый вопрос, но в любом случае, если кто-то на это наткнется
Решение состоит в том, чтобы назначить себя делегатом контроллера «more». У вас уже есть класс, который принимает протокол UITabBarControllerDelegate
, поэтому файл .h может выглядеть следующим образом:
@interface MyDelegate : NSObject <UITabBarControllerDelegate, UINavigationControllerDelegate>
{
}
Где бы вы ни назначали свой класс делегатом, сделайте это:
- (void) assignDelegate:(MyDelegate)myDelegate toTabBarController:(UITabBarController*)tabBarController
{
tabBarController.delegate = myDelegate;
tabBarController.moreNavigationController.delegate = myDelegate;
}
И, наконец, в вашем классе делегата добавьте этот метод:
- (void) navigationController:(UINavigationController*)navigationController didShowViewController:(UIViewController*)viewController animated:(BOOL)animated
{
// add code to handle the event
}
Обратите внимание, что ни один из ваших методов делегата не вызывается при программном изменении вкладок.