我意识到ABPeoplePicker已经针对iOS 9进行了更改,但功能仍然存在并且现在正在运行。我遇到的问题是" Group"和"取消"按钮在白色背景上出现白色。所以很难看到。以前的控制器确实使用了导航栏上的白色按钮,但背景当然更暗。
我尝试使用以下版本在iOS 8下工作,但似乎在iOS 9下无效:
[[UIBarButtonItem appearanceWhenContainedIn:[ABPeoplePickerNavigationController class], nil] setTintColor:[UIColor blueColor]];
我尝试使用navigationcontroller.navbar.tintcolor属性直接设置它。这不会在8或9下工作。
如何在联系页面上显示这些按钮?
更新:我也试过这个也不起作用:
[[UIBarButtonItem appearanceWhenContainedInInstancesOfClasses:@[[ABPeoplePickerNavigationController class]]] setTintColor:[UIColor blueColor]];
更新2:我尝试使用新的CNContactPickerViewController
,白色的白色也是如此。
答案 0 :(得分:2)
我之前也遇到过这个问题。要解决此问题,您需要为UINavigation栏设置色调颜色,如下所示:
[[UINavigationBar appearance] setTintColor:[UIColor blueColor]];
例如:
- (void)showContactList
{
[[UINavigationBar appearance] setTintColor:[UIColor blueColor]];
ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init];
picker.peoplePickerDelegate = self;
[self presentViewController:picker animated:YES completion:nil];
}
答案 1 :(得分:0)
我不知道这对我有什么用处:
// Text color of navigation bar
let textAttributes = [NSForegroundColorAttributeName:UIColor.color_template_1_2()]
UINavigationBar.appearance().titleTextAttributes = textAttributes
UINavigationBar.appearance().tintColor = UIColor.color_template_1_2()
let contactPicker = CNContactPickerViewController()
contactPicker.delegate = self
contactPicker.displayedPropertyKeys =
[CNContactPhoneNumbersKey]
self.present(contactPicker, animated: true, completion: {
let textAttributes2 = [NSForegroundColorAttributeName:UIColor.white]
UINavigationBar.appearance().titleTextAttributes = textAttributes2
UINavigationBar.appearance().tintColor = UIColor.white
})