【问题标题】:set tabbar appearance different for different view controllers in ios在 ios 中为不同的视图控制器设置不同的标签栏外观
【发布时间】:2014-09-26 23:53:22
【问题描述】:

我有一个基于标签栏的应用程序。

我在applicationDidFinishLaunchingWithOptions 中设置了标签栏的背景图片,代码如下所示。

UIImage* tabBarBackground = [UIImage imageNamed:@"tabbarbottom2.png"];
        [[UITabBar appearance] setBackgroundImage:tabBarBackground];

我在故事板中这样做。

现在,使用此代码。我的 Tabbar 的背景图片正在设置并运行良好。

但是我想为tabbar的不同viewcontrollers设置不同的背景。

我搜索了很多,但找不到方法。

我被困在这个问题上很长一段时间了。

请帮帮我。

提前致谢。

【问题讨论】:

    标签: ios objective-c xcode ios7 tabbar


    【解决方案1】:

    最好在每个 viewController 的 viewDidLoad 方法中设置 tabBar 的外观。这样,外观变化看起来更自然,而不是 tabBar 在它已经显示给用户之后改变外观,就像在 viewDidAppear 中那样。您可以通过以下方式完成此操作:

    - (void)viewDidLoad:(BOOL)animated {
        UIImage* tabBarBackground = [UIImage imageNamed:@"tabbarbottom2.png"];
        [[UITabBar appearance] setBackgroundColor:tabBarBackground];
    }    
    

    【讨论】:

      【解决方案2】:

      您始终可以覆盖viewDidLoad 中的默认值。如果要为不同的标签栏控制器设置背景图像,则必须继承 UITabBarController 并将以下内容添加到 viewDidLoad。

      [self.tabBar setBackgroundImage:[UIImage imageNamed:@"tabbarForThisController.png"]];
      

      如果你想要不同的图片取决于你必须添加的所选标签

      [self.tabBarController.tabBar setBackgroundImage:[UIImage imageNamed:@"tabBarForThisTab.png"]];
      

      到所选标签的视图控制器中的viewDidLoad

      【讨论】:

      • 感谢您的帮助。我在 viewdidload 和 viewwillappear 中编写了代码,它对我来说非常有效。你救了我。
      猜你喜欢
      • 2020-01-28
      • 1970-01-01
      • 1970-01-01
      • 2014-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多