Jak zaimplementować didSelectViewController

Chcę złapać zdarzenie, gdy ktoś przełącza się między kartami. W moim pliku appdelegate mam dwie następujące funkcje:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    UITabBarController * uitbc = [storyboard instantiateViewControllerWithIdentifier:@"tabbarcontroller"];
    uitbc.delegate = self;
    [self.window addSubview:uitbc.view];

    return YES;
}


- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
    NSLog(@"switching");
}

AleNSLog(@"switching"); nigdy nie strzela. Xcode wyświetla ostrzeżenie dla liniiuitbc.delegate = self; powiedzenie „Przekazywanie appdelegate const__strong do parametru niezgodnego identyfikatora typu”.

Co ja robię źle? Podążam za zaakceptowaną odpowiedzią znalezioną tutaj, z wyjątkiem tego, że tworzę instancję tablicy historii formularza tabbarcontroller:

jak uzyskać zdarzenie, które przełącza menu karty na iPhone

Aktualizacja Opierając się na sugestii Skrama, napisałem to dla mojego wniosku aplikacyjnego, ale NSLOG (Przełączanie) nadal nie działa:

@interface johnAppDelegate : UIResponder <UITabBarControllerDelegate>

Zaktualizowałem również moje didFinishLauchingWithOptions:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
tabBarController = self.window.rootViewController.tabBarController;
tabBarController.delegate = self;
[window addSubview:tabBarController.view];
}

Dobrze, że nic się nie dzieje. Nie ostrzegam już także o niezgodnych typach. Mimo to didSelectViewController nie uruchamia się.

questionAnswers(3)

yourAnswerToTheQuestion