3

私のView Controllerには、次のコードがあります

- (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ます。Appleがこのビューをカスタマイズしないと言ったように、デフォルトの青色が必要です。ここに私が試した私のコードがあります

コード 1:

-(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: 色合いを設定するviewWillDisappear

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

コード 2 も機能しません。

しかし、これは iOS5 では、モーダルで表示している間は設定せずに正常に動作しています。動作していない iOS 4.xtintColor = nilMFMailComposeViewControllerviewWillDisappear

誰もこれに対する解決策を持っていますか? ありがとう。

4

3 に答える 3

3

yourControllerの(プリセットしているViewController) topViewControllerにアクセスすることで、ナビゲーションバーの色合いをカスタマイズできます。

元 :

[self presentModalViewController:yourController animated:YES];
yourController.topViewController.navigationController.navigationBar.tintColor = 
    [UIColor (Your Color)];
于 2012-08-22T10:52:36.687 に答える
1

色合いではなく、ナビゲーション バーのスタイルを設定してみてください。ティントカラーとバースタイルにはわずかに異なる副作用があるため、私はあなたのニーズを完全には理解していませんが、まさにあなたが探しているものかもしれません.

[self.navigationController.navigationBar setBarStyle:UIBarStyleDefault];

また

self.navigationController.navigationBar.barStyle = UIBarStyleDefault;

また、以前のView Controllerではなく、モーダルView Controllerのコンテキスト内でこれを行うようにしてください。

于 2012-07-20T18:18:23.090 に答える
0

nil の代わりにこれを試してください[UIColor ClearColor];

于 2012-04-26T07:32:30.930 に答える