iOS 9联系人列表按钮白色白色

时间:2015-09-21 22:05:11

标签: objective-c xcode ios9 abpeoplepickerview

我意识到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,白色的白色也是如此。

2 个答案:

答案 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
    })