一、简述
UITabbarController为具有多个顶级模式的应用程序管理按钮栏和转换视图。
要在应用程序中使用,请将其视图添加到视图层次结构中,然后依次添加顶级视图控制器。
大多数客户机不需要子类UItabarController。
如果在选项卡栏控制器中添加了五个以上的视图控制器,则只会显示前四个。其余部分将在自动生成的更多项目下访问。
如果所有视图控制器都可旋转,则uitabarcontroller可以旋转。
二、属性
//包含的控制器数组
@property(nullable, nonatomic,copy) NSArray<__kindof UIViewController *> *viewControllers;
//set
- (void)setViewControllers:(NSArray<__kindof UIViewController *> * __nullable)viewControllers animated:(BOOL)animated;
如果视图控制器的数量大于选项卡栏显示的数量,则会自动显示“更多”导航控制器。
-viewcontrollers不会返回“more”导航控制器,但-selectedviewcontroller可能会返回它。
@property(nullable, nonatomic, assign) __kindof UIViewController *selectedViewController;
当前选择的tabBar选项
@property(nonatomic) NSUInteger selectedIndex;
tabBarController提供的tabBar属性,避免直接修改选项栏的内容而引起抛出异常。
@property(nonatomic,readonly) UITabBar *tabBar NS_AVAILABLE_IOS(3_0);
代理属性
@property(nullable, nonatomic,weak) id delegate;
三、方法
遵循
选项栏是否可以点击
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController NS_AVAILABLE_IOS(3_0);
点击选中选项栏的时候触发
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController;
以下方法不常用
更多,开始编辑
- (void)tabBarController:(UITabBarController *)tabBarController willEndCustomizingViewControllers:(NSArray<__kindof UIViewController *> *)viewControllers changed:(BOOL)changed NS_AVAILABLE_IOS(3_0) __TVOS_PROHIBITED;
更多,将要结束编辑
- (void)tabBarController:(UITabBarController *)tabBarController didEndCustomizingViewControllers:(NSArray<__kindof UIViewController *> *)viewControllers changed:(BOOL)changed __TVOS_PROHIBITED;
更多,已经结束编辑
- (void)tabBarController:(UITabBarController *)tabBarController didEndCustomizingViewControllers:(NSArray<__kindof UIViewController *> *)viewControllers changed:(BOOL)changed __TVOS_PROHIBITED;
屏幕旋转时,屏幕支持的方向
- (UIInterfaceOrientationMask)tabBarControllerSupportedInterfaceOrientations:(UITabBarController *)tabBarController NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED;
子视图指定方向,跟子视图控制器有关
- (UIInterfaceOrientation)tabBarControllerPreferredInterfaceOrientationForPresentation:(UITabBarController *)tabBarController NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED;
自定义切换交互式
- (nullable id )tabBarController:(UITabBarController *)tabBarController
interactionControllerForAnimationController: (id )animationController NS_AVAILABLE_IOS(7_0);
自定义切换动画
- (nullable id )tabBarController:(UITabBarController *)tabBarController
animationControllerForTransitionFromViewController:(UIViewController *)fromVC
toViewController:(UIViewController *)toVC NS_AVAILABLE_IOS(7_0);