Ich versuche, eine benutzerdefinierte Tabbar-Animation erstellen, wenn ein Benutzer auf eine Tab-Leiste-Schaltfläche tippt.iOS/Objective c - UITabBarControllerDelegate - Benutzerdefinierte Registerkarte Animation Delegaten nicht
Ich habe eine UITabBarController Unterklasse implementiert, die UITabBarControllerDelegate implementiert
hier ist die .m
#import "MYCustomTabBarControler.h"
@interface MYCustomTabBarControler()
@end
@implementation MYCustomTabBarControler
- (void)viewDidLoad {
[super viewDidLoad];
self.delegate = self; // I set the delegate as self
}
#pragma mark - UITabBarControllerDelegate
- (BOOL)tabBarController:(UITabBarController *)tabBarController
shouldSelectViewController:(UIViewController *)viewController {
//This is called so I know the delegate is working
NSLog(@"The tabBarController delegate is set and working");
return YES;
}
//This delegate method is never called
- (id<UIViewControllerAnimatedTransitioning>)tabBarController:(UITabBarController *)tabBarController
UIViewControllerAnimatedTransitioning:(UIViewController *)fromVC
toViewController:(UIViewController *)toVC {
MYBarTransition *animator = [MYBarTransition new];
return animator;
}
//This delegate method is never called
- (id<UIViewControllerInteractiveTransitioning>)tabBarController:(UITabBarController *)tabBarController
interactionControllerForAnimationController:(id<UIViewControllerAnimatedTransitioning>)animationController {
MYBarTransition *animator = [MYBarTransition new];
return animator;
}
Aus irgendeinem Grund die Delegatmethoden verantwortlich für den Übergang sind nicht genannt. Ich habe die docs gelesen und kann keinen Grund sehen, dass sie nicht angerufen werden würden.
Ich habe meine Delegierten richtig eingestellt und bestätigt es ist durch die Umsetzung der shouldSelectViewController Methode
arbeiten Was ich hier fehlt?
Wann erwarten Sie, dass es aufgerufen wird? – beyowulf
Sollte es nicht aufgerufen werden, wenn der Benutzer auf die Schaltfläche der Registerkartenleiste klickt? – Zigglzworth
Ich erwarte, dass es aufgerufen wird, wenn ein Benutzer auf die Schaltfläche der Registerkartenleiste klickt .. aber es ist nicht – Zigglzworth