2017-07-07 15 views
0

私はContactPickerを持っていて、プロジェクトの他のViewControllerの色を制御できますが、ContactsPickersの ステータスバーの色を制御することはできません。CNContactPickerViewControllerのステータスバーの色を変更します

私の目標は、ステータスバーのテキストを白色にすることです。

- (IBAction)btnSearch:(id)sender { 

    //global statusbar color 
    UINavigationBar.appearance.translucent = NO; 
    UINavigationBar.appearance.barStyle = UIBarStyleBlack; 

    CNContactPickerViewController *contactPicker = [CNContactPickerViewController new]; 

    //local statusbar color 
    contactPicker.navigationController.navigationBar.translucent = NO; 
    contactPicker.navigationController.navigationBar.barStyle = UIBarStyleBlack; 

    contactPicker.delegate = self; 

    contactPicker.displayedPropertyKeys = @[CNContactNamePrefixKey, CNContactPhoneNumbersKey]; 

    [self presentViewController:contactPicker animated:NO completion:nil]; 

} 

また、私はXcodeのドキュメントでこれを見つけた: アプリのデフォルトを新しいビューコントローラベースのステータスバー管理システムを使用します。これをオプトアウトするには、UIViewControllerBasedStatusBarAppearanceキーの値をInfo.plistに追加します。

ビューごとに制御しないグローバルプロパティがある場合は、 を管理して、ContactPickerステータスバーを白色にすることができます。

私は 状況のために動作しませんでしたアプローチのすべての種類しようとしている

答えて

1

:私はそれは効果がなかった、これを試してみました、私のAppdelegateで

(1) を:

[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault; 

(2) 私のAppDelegateにはこれがありますが、効果はありませんでした。

UINavigationBar.appearance.translucent = NO; 
UINavigationBar.appearance.barStyle = UIBarStyleBlack; 

(3) をするだけContactsControllerを提示する前に、私はこの(効果なし)だった:

self.navigationController.navigationBar.barStyle = UIBarStyleBlack; 
self.navigationController.navigationBar.translucent = NO; 

を(4) これも単にコントローラーを提示する前には影響を及ぼさなかった。

contactPicker.navigationController.navigationBar.translucent = NO; 
contactPicker.navigationController.navigationBar.barStyle = UIBarStyleBlack; 

(5) これはextenによってで機能しました鼎クラスとメソッドをオーバーライド「preferredStatusBarStyle」:

注:私は単純に設定する他のすべてのViewControllersについては

を「YES」に「ビュー・コントローラ・ベースのステータスバーの外観を」設定している私のplistの中半透明でNavigationCotrollerのbarStyleがUIBarStyleBlackに作用しましたが、 は連絡先ではありません。

の.h

#import <ContactsUI/ContactsUI.h> 

@interface ContactViewController : CNContactPickerViewController 

@end 

.M

#import "ContactViewController.h" 

@interface ContactViewController() 

@end 

@implementation ContactViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 

} 

- (void)didReceiveMemoryWarning { 
    [super didReceiveMemoryWarning]; 
} 

-(UIStatusBarStyle)preferredStatusBarStyle { 
    return UIStatusBarStyleLightContent; 
} 
@end 
関連する問題