2014-12-11 44 views
0

我想從白色UINavigatinonBar導航到透明UINavigationBar過渡到帶有透明背景圖像的UINavigationBar導致黑色閃爍

在我的根視圖控制器,這是設置:

self.navigationController.navigationBar.hidden = NO; 
[self.navigationController.navigationBar setBarTintColor:[UIColor whiteColor]]; 
[self.navigationController.navigationBar setTranslucent:NO]; 

重要的是,它保持不透亮。 這是第二個視圖控制器的設置:

// set title of navbar 
self.title = [self.data objectForKey:@"title"]; 
[self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]}]; 
// 

// IMPORTANT PART: make the nav bar transaparent - no prerequisites. 
self.navigationController.navigationBar.barStyle = UIBarStyleDefault; 
[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault]; 
self.navigationController.navigationBar.shadowImage = [UIImage new]; 
self.navigationController.navigationBar.translucent = YES; 

// set custom back button 
UIButton *backButton = [[UIButton alloc] initWithFrame: CGRectMake(16, 31, 22, 20)]; 
UIImage *backImage = [UIImage imageNamed:@"backButtonDetail"]; 
[backButton setBackgroundImage:backImage forState:UIControlStateNormal]; 
[backButton setTitle:@"" forState:UIControlStateNormal]; 
[backButton addTarget:self action:@selector(popBack) forControlEvents:UIControlEventTouchUpInside]; 
UIBarButtonItem *backButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton]; 
self.navigationItem.leftBarButtonItem = backButtonItem; 

這正好差不多好了,除了動畫:

enter image description here

正如你所看到的,當我製作動畫的背景變成黑色。我想淡入目標顏色的白色。它現在從黑色背景開始動畫。

我嘗試在導航欄下方設置自定義UIView,但那不起作用。

我很失落如何現在這個和任何幫助將不勝感激。

+0

嘗試放置UIImageView,並在第二個視圖控制器中將其顏色設置爲白色。確保它填充導航欄後面,以便導航欄可用。 – 2014-12-11 06:21:13

+0

你有沒有找到解決你的問題?謝謝。 – dorin 2015-04-23 11:48:01

+0

還沒有..我會很高興與誰可以給我一個答案的人! – bdv 2015-05-01 12:18:35

回答

3

我最近遇到了同樣的問題,並能夠通過只設置在的appDelegate的didFinishLaunchingWithOptions

window.backgroundColor = UIColor.whiteColor() 

,如果你還沒有到窗口的引用,然後

窗口的背景色繞過它
UIApplication.sharedApplication().delegate?.window.backgroundColor = ... 

我發現這是最乾淨的解決方案。希望它有幫助,儘管有點晚。