При использовании UISplitViewController от Apple главный вид имеет черную панель инструментов в портретном режиме и серый в альбомной ориентации.
Я создал метку внутри UIView на панели инструментов, как описано здесь: Добавление UILabel к UIToolbar , но по умолчанию текст черный, что означает, что он виден только в альбомной ориентации.mode.
Как мне кодировать контроллер представления, чтобы он мог изменять цвет текста, чтобы он всегда был виден, и в идеале, чтобы он соответствовал принципам работы приложений Apple, таких как Mail (белый на портретном и темно-серый на ландшафтном)?
... позже ...
Следуя указаниям в ответе Алана Мура, я решил использовать такой код:
UIInterfaceOrientation o = [UIApplication sharedApplication].statusBarOrientation;
if (UIDeviceOrientationIsPortrait(o))
label.textColor = [UIColor whiteColor];
else
label.textColor = [UIColor darkTextColor];
Это называетсяиз моих методов viewDidLoad и didRotateFromInterfaceOrientation.Мне кажется, что didRotate лучше, чем shouldRotate для этого случая.
Также обратите внимание, что я запрашиваю statusBar, потому что, на мой взгляд, self.interfaceOrientation всегда возвращает 1. Это также отмечается здесь: Определить UIInterfaceOrientationiPad .
Не уверен на 100%, что darkText - правильный цвет для ландшафта.