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ę.