所以我不得不承认,我有这个代码工作完美,直到一天前,当我添加一个新的视图,所以我现在很沮丧。故事板上的tabbar上的自定义背景
设置: 我有一个包含tabbar的storyboarded应用程序。在AppDelegate中,我有在AppDelegate中安装的CoreData
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
UINavigationController *navigationController = [[tabBarController viewControllers] objectAtIndex:0];
GamesViewController *controller = [[navigationController viewControllers] objectAtIndex:0];
controller.managedObjectContext = self.managedObjectContext;
return YES;
}
而且下面,我有这种方法,将标准的选项卡背景设置为我选择的图片:
- (void)customizeInterface {
UIImage* tabBarBackground = [UIImage imageNamed:@"tab_background"];
[[UITabBar appearance] setBackgroundImage:tabBarBackground];
}
所以这一切工作正常,直到我添加了另一个登录视图之前我的选项卡。我不得不改变CoreData最初的设置(从我的标签页到我的登录/初始化视图)。以下是故事板外观的新设置。
现在,当应用程序加载了...背景图像最初出现过,但在第一个选项卡上只。一旦我点击关闭,它会再次切换到默认的渐变色。如果我回到第一个/初始选项卡,背景不会自行重新应用,它将保留为彩色渐变。
下面是修订后的applicationDidFinishLaunching代码与它一起去:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//instantiate local context
NSManagedObjectContext *context = [self managedObjectContext];
if (!context) {
// Handle the error.
NSLog(@"Error: Context is null");
}
LoginViewController *rootViewController = [LoginViewController alloc];
rootViewController.managedObjectContext = context;
return YES;
}
,那么什么我试图做的,是进入viewDidLoad中的第一个VC,我的TabBar负载高达(GameViewController ),并试图将这一来解决这个问题:
- (void)viewDidLoad {
[super viewDidLoad];
[self.tabBarController.tabBar setBackgroundImage:[UIImage imageNamed:@"dock_background"]];
}
这并没有工作,所以我使用相同的原始代码,我在我的AppDelegate也尝试并且还没有工作:
- (void)viewDidLoad {
[super viewDidLoad];
UIImage* tabBarBackground = [UIImage imageNamed:@"tab_background"];
[[UITabBar appearance] setBackgroundImage:tabBarBackground];
}
所以......我有点卡住。我必须做(或不做)如此明显的事情......任何人都有任何提示/指针?
由于一吨 - 德鲁
你想定制的TabBar – 2012-08-01 04:29:00
哇。现在我看到编码的深夜效应有时可以做到。原来,答案始终在我面前。我的意见是试图加载图像“dock_background.png”而不是tab_background.png(这是实际的文件名)。由于该图像不存在...它默认为正常的渐变背景颜色。卫生署!感谢Neon的帮助......我将在未来的项目中记住您的代码,因为它看起来很有前途。 – Drew 2012-08-01 13:54:38