【发布时间】:2014-03-18 16:57:01
【问题描述】:
我正在使用我的 iPhone 应用程序中的主题。我在标签栏中有两个标签(时间轴和设置),当用户转到第二个标签(设置)时,在设置中选择主题并选择一个主题,这会设置第一个表格视图的背景图像和导航栏的样式第一个选项卡(时间轴)中的控制器。这行得通。
我想用标签栏实现同样的效果,所以标签栏会随着背景图片和导航栏的变化而变化。
在我的时间线表视图中,我将以下代码放入 viewWillAppear:
UIImage *tabBackgroundImage = [UIImage imageNamed:@"Purplepinktopp.png"];
[[UITabBar appearance] setBackgroundImage:tabBackgroundImage];
但是,标签栏永远不会改变。更改选项卡栏的唯一方法是在 AppDelegate 中,但随后会在任何地方更改它。我需要允许用户选择一个主题并相应地更改,因此我需要在每个视图控制器的基础上进行更改,与导航栏完全相同。
在这个时间线表视图的 viewWillAppear 中,我将导航栏设置为:
UIImage *navBackgroundImage = [UIImage imageNamed:@"Purplepinknav.png"];
[[UINavigationBar appearance] setBackgroundImage:navBackgroundImage forBarMetrics:UIBarMetricsDefault];
这总是有效的。这不适用于选项卡栏,但是使用上面的代码。
编辑:我已将 apperanceWhenContainedIn 添加到 viewWillAppear:
UIImage *tabBackgroundImage = [UIImage imageNamed:@"SolidPurple.png"];
[[UITabBar appearance] setBackgroundImage:tabBackgroundImage];
[UITabBar appearanceWhenContainedIn:[UITabBar class], [UITabBar class], nil];
但这似乎没有任何作用。
我该如何解决这个问题?任何帮助将不胜感激。
【问题讨论】:
标签: ios iphone uitabbar uiappearance