Изменение цвета UIToolbar + его кнопок при представлении в Popover Controller на ipad - PullRequest
2 голосов
/ 01 декабря 2010

На iPhone и iPad мне нужно представить две кнопки в правой части панели навигации.Я делаю это с помощью следующего фрагмента кода:

UIToolbar *rightBarButtons = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 92, 44.01)];
UIBarButtonItem *send = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction 
                                                                      target:self 
                                                                      action:@selector(send)];
[send setStyle:UIBarButtonItemStyleBordered];
UIBarButtonItem *add =  [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd 
                                                                      target:self
                                                                      action:@selector(addRecipe:)];
[add setStyle:UIBarButtonItemStyleBordered];
NSArray *buttons = [[NSArray alloc] initWithObjects:send,add,nil];
[send release];
[add release];
[rightBarButtons setItems:buttons];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:rightBarButtons];
[buttons release];
[rightBarButtons release];

На iPhone цвета в порядке, а в альбомном режиме на iPad все в порядке, так как они серые.Однако в портретном режиме вид отображается внутри контроллера поповер, который имеет темно-черный / синий цвет.Мои кнопки и панель инструментов отображаются серым цветом по умолчанию.

Как сделать так, чтобы кнопки панели инструментов совпадали?Если вы не используете хак выше и просто представляете одну кнопку как нормальную, изменение цвета обрабатывается, и я думаю, мне просто нужно реализовать это изменение цвета вручную, проблема в том, что я не могу заставить цвет измениться вообще.

1 Ответ

0 голосов
/ 01 декабря 2010

Это будет свойство barStyle, а не tintColor, как я думал ранее.Самое простое решение - скопировать стиль панели из другого места:

[rightBarButtons setBarStyle:self.navigationController.navigationBar.barStyle];

В этом случае довольно просто убедиться, что стиль остается правильным при изменении вида.Хотя я должен сказать, что мне очень понравились темно-синие черные кнопки над серебристой панелью навигации, которая давала после поворота.

...