6

ABAddressBookRef電話帳の人の情報を取得するために使用しています。正常に動作しますが、 の色を変更したいUINavigationBarですABPeoplePickerNavigationController

これは可能ですか?できれば、やり方を教えてください。

4

8 に答える 8

2

ABPeoplePickerNavigationController外観プロキシを使用して、次のようにナビゲーション バーの外観を制御できます。

赤いバーと白いバーのボタン アイテムの場合:

[[UINavigationBar appearanceWhenContainedIn:[ABPeoplePickerNavigationController class], nil] setBarTintColor:[UIColor redColor]];
[[UIBarButtonItem appearanceWhenContainedIn:[ABPeoplePickerNavigationController class], nil] setTintColor:[UIColor whiteColor]];
于 2014-10-31T19:00:25.520 に答える
0
picker.topViewController.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName: [UIColor whiteColor]};
于 2014-07-30T08:24:30.787 に答える
0

これを試して:

static BOOL foundSearchBar = NO;
- (void)findSearchBar:(UIView*)parent mark:(NSString*)mark {

  for( UIView* v in [ subviews] ) {

    if( foundSearchBar ) return;

    NSLog(@"%@%@",mark,NSStringFromClass([v class]));

    if( [v isKindOfClass:[UISearchBar class]] ) {
      [(UISearchBar*)v  setTintColor:[UIColor blackColor]];
      foundSearchBar = YES;
      break;
    }
    [self findSearchBar:v mark:[mark stringByAppendingString:@"> "]];
  }
}

- (void)pickPerson:(BOOL)animated {
  foundSearchBar = NO;
  ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init];
  [[picker navigationBar] setTintColor:[UIColor blackColor]];

  picker.peoplePickerDelegate = self;
  picker.displayedProperties = [NSArray arrayWithObjects:
                  [NSNumber numberWithInt:kABPersonEmailProperty],
                  nil];

  [self presentModalViewController:picker animated:animated];
  [picker release];

  [self findSearchBar:[picker view] mark:@"  "];
}
于 2012-10-09T09:23:18.853 に答える
0

ABPeoplePickerNavigationControllerUISearchBarの色を変更するに は、このように使用します....

objPicker.ViewController.searchDisplayController.searchBar.tintColor = [UIColor colorWithRed:0.294 green:0.278 blue:0.247 alpha:1.0];

ABPeoplePickerNavigationController 内の UISearchBar の tintColor を変更する

于 2012-10-09T07:49:36.920 に答える
0

このコードを試して、ABPeoplePickerNavigationController の色を変更できます

objPicker.ViewController.navigationController.navigationBar.tintColor = [UIColor redColor];

または、 RGBカラーを設定できます

  objPicker.ViewController.navigationController.navigationBar.tintColor = [UIColor colorWithRed:0.274 green:0.270 blue:0.268 alpha:0.8];
于 2012-10-09T07:20:09.240 に答える