基类一:UITabbarController

本文深入解析了UITabBarController的功能和用法,包括其在管理多个顶级视图控制器、旋转支持、自动生成更多项以及与代理的交互等方面的关键特性。同时,文章提供了详细的属性和方法说明,帮助开发者更好地掌握和应用这一iOS开发中的重要组件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、简述

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<UITabBarControllerDelegate> delegate;

三、方法

遵循<UITabBarControllerDelegate>

选项栏是否可以点击

- (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 <UIViewControllerInteractiveTransitioning>)tabBarController:(UITabBarController *)tabBarController
                      interactionControllerForAnimationController: (id <UIViewControllerAnimatedTransitioning>)animationController NS_AVAILABLE_IOS(7_0);

自定义切换动画

- (nullable id <UIViewControllerAnimatedTransitioning>)tabBarController:(UITabBarController *)tabBarController
            animationControllerForTransitionFromViewController:(UIViewController *)fromVC
                                              toViewController:(UIViewController *)toVC  NS_AVAILABLE_IOS(7_0);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值