У меня проблема с UINavigationBar и его y-смещением. Бар отображается без UINavigationController в качестве супервизора, но это не имеет значения. В ViewController где панель навигации появляется настройка выглядит следующим образом:Навигационная панель и верхнее поле
// Add Basic View
CGRect viewFrame = [[UIScreen mainScreen] applicationFrame];
UIView *myView = [[UIView alloc] initWithFrame:viewFrame];
myView.backgroundColor = [UIColor greenColor];
self.view = myView;
[myView release];
UINavigationBar *myBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 50)];
.... add some Stuff to the bar...
[self.view addSubview:myBar];
[myBar release];
Как я добавить Панель навигации как chield вид на self.view я предположил, что origin.y = 0 будет означать, что бар должен получить непосредственно отображается под строкой состояния. Это работает так, как ожидается, если я запустил приложение на своем iPad, поверните его один раз (или больше), а затем разверните его до представления, описанного выше. В этом случае UINavigationBar отображается правильно. Тем не менее, если я запустил приложение и сразу перейду к описанному выше контроллеру (без поворота устройства до появления этого конкретного контроллера), навигационная панель сдвигается на 20 пунктов ниже строки состояния. Но как только я поворачиваю устройство, тогда бар снова прекрасен. Я проверил значение viewFrame.origin.y, и в обеих ситуациях это 20 пунктов, поэтому я не понимаю, почему в одном случае панель просто игнорирует значение origin.y своего супервизора, но не в другом.
Я действительно смущен этим, кто-нибудь еще когда-либо испытывал такую проблему?
Большое спасибо за помощь!
Ps. Я также пробовал его с UIToolbar, проблема такая же.
Извините, вроде как в последнее время, но приятное решение, спасибо! – Robin