iOS-关于self.title 的大坑

前言

今天是情人节,起床起来被朋友圈的狗粮淹死了,没办法谁让咱是单身dog呢,没事撸点代码吧,我都很服我自己.

iOS-关于self.title 的大坑_第1张图片
迎面撒来一把狗粮.jpg

当你有四个控制器作为uitabbarcontroller的根视图控制器的时候,并且每个控制都为uinavigationcontroller的根视图控制器这个时候你在控制器里面调用 self.title = @“”; 大坑出现了 你会发现你的tabbaritemtitle变成了 你刚才在控制器里面设置的控制器的title

不要惊慌, 先说一下以下几种title的原理

self.navigationItem.title = @"my title";
// sets navigation bar title.(只设置导航控制器标题)
self.tabBarItem.title= @"my title"; 
//sets tab bar title.(只设置底部四大金刚标题)
self.title= @"my title";
// sets both of these.(两者都会设置,并且只要你调用会覆盖上面两者设置的值)

那要怎么办呢

1.是你分开设置 底部用self.tabBarItem.title 头部用self.navigationItem.title 不去调用self.title

这样是不是觉得很憋屈,有方法还不让人掉(我去你大爷)

2.继承uitabbarcontroller 并遵循代理实现以下代理方法

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController{
    yourNavigationController.tabBarItem.title = @"Tab Bar Title";
    ...
}

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
    your
        NavigationController.tabBarItem.title = @"Tab Bar Title";
    }

其原理就是在你每次点击切换控制器的时候都去重新设置tabBarItem.title

最后祝大家情人节快乐(都去死吧,嘿嘿嘿...)!

你可能感兴趣的:(iOS-关于self.title 的大坑)