1

在我的視圖控制器我有以下代碼更改導航欄色調顏色,而在iOS的4.x中呈現新的視圖控制器模態

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 
    NSLog(@"%s",__PRETTY_FUNCTION__); 

    self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:201.0/255.0 green:201.0/255.0 blue:201.0/255.0 alpha:1.0]; 
} 

在這種觀點看來,當我點擊一個按鈕,我提出MFMailComposeViewController模態。當我以模態方式呈現MFMailComposeViewController時,導航欄與viewWillAppear中設置的顏色相同。我想要默認的藍色,因爲蘋果告訴你不要自定義這個視圖。這裏是我的代碼,我已經試過

代碼1:viewWillDisappear

-(void)viewWillDisappear:(BOOL)animated { 
    NSLog(@"%s",__PRETTY_FUNCTION__); 
    self.navigationController.navigationBar.tintColor = nil; 
    [super viewWillDisappear:animated]; 
} 

設置色調顏色:

-(void)sendEmailWithWithRecipients:(NSArray*)recipients andData:(NSData*)data { 

    if ([MFMailComposeViewController canSendMail]){ 

     MFMailComposeViewController *mailComposeViewController = [[MFMailComposeViewController alloc] init]; 

     mailComposeViewController.mailComposeDelegate = self; 

     self.navigationController.navigationBar.tintColor = nil; 
     [self presentModalViewController:mailComposeViewController animated:YES]; 
     [mailComposeViewController release]; 
    } 
    else { 
     [self showAlertWithTitle:@"Alert" andMessage:@"Can not send email. Please check your email settings."]; 
    } 
} 

但上面的代碼是不工作的淺顏色

碼2代碼2也不起作用。

但這是iOS5中沒有做工精細設置tintColor = nil而在viewWillDisappear呈現MFMailComposeViewController模態&。它不工作的iOS 4.x

任何人都有這個解決方案?謝謝。

+0

你不想只更改tintColor或您的導航欄 – 2012-04-26 16:00:45

+0

@ R.A的全背景色彩我想默認的導航欄時,我提出mailComposeViewController模態 – iOSAppDev 2012-04-27 04:15:34

回答

0

而不是零試試這個[UIColor ClearColor];

+0

仍然沒有工作。無論如何,謝謝 – iOSAppDev 2012-04-26 07:35:52

+0

在viewdidload方法中設置tintcolor而不是viewwillappear。 – iMash 2012-04-26 07:41:23

+0

仍然無法正常工作。 – iOSAppDev 2012-04-26 07:46:26

1

嘗試設置導航欄樣式,而不是色調的顏色。色彩和酒吧風格有略微不同的副作用,所以雖然我不完全瞭解您的需求,但它可能正是您所期待的。

[self.navigationController.navigationBar setBarStyle:UIBarStyleDefault]; 

self.navigationController.navigationBar.barStyle = UIBarStyleDefault; 

並確保你這樣做模態視圖控制器,而不是以前的視圖控制器的範圍內。

3

您可以通過訪問自定義導航欄的着色顏色yourController的(的ViewController您正在presetnting)topViewController

例:

[self presentModalViewController:yourController animated:YES]; 
yourController.topViewController.navigationController.navigationBar.tintColor = 
    [UIColor (Your Color)]; 
+0

它在ios7之前工作得很好 – 2013-11-11 15:33:36

相關問題