更改系统tab栏的标题

新建一个工程,模版选择Tabbed Application。运行可以得到以下界面:

更改系统tab栏的标题_第1张图片
3FD635B1-38EA-441E-9774-823623D6B2BD.png

接下来我们希望First显示的是一个星星的图标,切好系统有预定义,所以我们来设置它:

更改系统tab栏的标题_第2张图片
EE5EEEAD-6122-46B5-B714-E804FDE9E143.png

运行。得到我们想要的结果:

更改系统tab栏的标题_第3张图片
AC87CE91-682F-4FA2-BB6B-B3D800A35CD3.png

我们想把这个图表底下的文字显示成最爱。在title属性中设置,回车确认,发现System Item变为了Custom。运行结果并不是我们所预期的一个星星图标,且文字是最爱。

更改系统tab栏的标题_第4张图片
![9A9F4E60-1D9D-4E9B-B754-73020640F548.png](http://upload-images.jianshu.io/upload_images/45400-e815ed8e704b1b3e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

也就是说,如果你想用系统的图标,那么文字是不能改的,必须配套使用。那么有办法更改文字吗?有的。

我们子类化一个UITabBarController。并在viewDidLoad中更改。

- (void)viewDidLoad {
    [super viewDidLoad];
    
    [self.tabBar.items enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
        UITabBarItem * item = obj;
        
        switch (idx) {
            case 0:
                [item setValue:@"最热" forKeyPath:@"_view._label._content"];
                break;
            default:
                break;
        }
    }];
}

在运行一下:

更改系统tab栏的标题_第5张图片
0A0732D0-6ACB-4573-9B55-01AA938C04EA.png

结果正是我们想要的。

你可能感兴趣的:(更改系统tab栏的标题)