Метод didSelectViewController в UITabBarController не вызывается? - PullRequest
3 голосов
/ 27 марта 2010

Вот моя заглушка кода для моего app-Delegate.m - она ​​никогда не вызывается.

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
    NSLog(@"%s", __FUNCTION__);
}

Это определено в этом app-Delegate.h

@interface OrioleAppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate> {
    UIWindow *window;
    UITabBarController *tabBarController;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;

@end

Ответы [ 3 ]

15 голосов
/ 27 марта 2010

Установили ли вы соединение между UITabBarController и делегатом приложения?

- (void)applicationDidFinishLaunching:(UIApplication *)application
{
     ...
     tabBarController.delegate = self;
     ...
}
15 голосов
/ 28 февраля 2013

Если ваш ViewController - UITabBarController, вам нужно установить self в качестве его делегата, потому что вы не можете напрямую изменить делегат UITabBar.

Например, в ViewDidLoad вашего UITabBarController:

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.delegate = self;
}
0 голосов
/ 27 марта 2010

Я добавил следующее tabBarController.delegate = self; и все хорошо. Я надеюсь, что это полезно для других.

- (void)applicationDidFinishLaunching:(UIApplication *)application {

    // Add the tab bar controller's current view as a subview of the window
    tabBarController.delegate = self;
    [window addSubview:tabBarController.view];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...