当自己写UITabBarController 时候 如果 同时实现了UITabBarDelegate 与UITabBarControllerDelegate
willxxxx didxxxx时
UITabBarDelegate的会被调用而UITabBarControllerDelegate的不会被调用
故覆写的时候不要同时实现同一个命名的方法。
ex:
//UITabBarDelegate
-(void)tabBar:(UITabBar *)tabBar didEndCustomizingItems:(NSArray *)items changed:(BOOL)changed{
……
}
//UITabBarControllerDelegate
-(void)tabBarController:(UITabBarController *)tabBarController didEndCustomizingViewControllers:(NSArray *)viewControllers changed:(BOOL)changed{
……
}
上面2个方法就不能同时复写 否则后者无法被执行
根据看.h文件 是因为UITabBarController 继承自UIViewController <UITabBarDelegate, NSCoding>
然后消息分发的时候UITabBarDelegate 会被优先执行。且 后者不被执行
本文探讨了在iOS开发中,当自定义UITabBarController并同时实现UITabBarDelegate与UITabBarControllerDelegate时,可能会遇到的方法调用冲突问题。文章指出,在重写相同名称的方法时,UITabBarDelegate的方法会覆盖UITabBarControllerDelegate的方法,导致后者无法执行。
4378

被折叠的 条评论
为什么被折叠?



