-
使用UITabBarController和使用一般的控制器一样,比如可以设置
self.window.rootViewController = tabBarController;
-
使用
addChildViewController
方法可以给其添加子控制器。每个子控制器对应一个UITabBarButton
,也就是在UITabBarController下面的选项。此时如果想要改变UITabBarButton
的内容,比如想要设置title, image等内容,需要在其对应的子控制器里面通过修改tabBarItem
的属性来设置内容。// JYViewController.m -> 是UITabBarController的子控制器 - (void)viewDidLoad { [super viewDidLoad]; self.tabBarItem.title = @"选项1"; self.tabBarItem.badgeValue = @"1"; }
这一点和UINavigationController是类似的,在使用UINavigationController的时候,我们在当前显示的控制器(也就是栈顶的控制器)中通过修改
navigationItem
来设置导航栏中的内容。self.navigationItem.leftBarButtonItem = ...;
也就是说,使用UINavigationController和UITabBarController的时候:
- 在其对应的控制器里面修改导航栏和tabBar的内容。
- 通过修改tabBarItem和navigationItem的属性来设置导航栏和tabBar的内容。其实tabBarItem和navigationItem属于
模型
(从NSObject继承,以...Item结尾的可以都推测为模型
?),此时我们通过修改模型来修改view中显示的内容。
-
当UINavigationController和UITabBarController同时使用的时候,如果让
navigationController
作为self.window.rootViewController
,然后再让tabBarController
成为navigationController
的子控制器,这么做是合法的,但是会有一些问题。因为前面说过,navigationBar上显示的内容是通过在其当前显示的子控制器中修改的,但是此时navigationController直接显示的子控制器是
tabBarController
,所以当进入不同的界面的时候,我们希望navigationBar上的内容(比如title)改变,但是此时是做不到的,因为我们无法在UITabBarController中修改navigationBar的内容。所以一般来说我们会让tabBarController作为根控制器,如果其他自定义的子控制器需要navigationController,那么就让每个自定义的控制器对应的navigationController作为tabBarController的子控制器,然后让自定义的控制器作为navigationController的子类。这样就可以在自定义控制器中修改navigationController的navigationBar显示内容。
UITabBarController的注意点
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...