Панель UINavigationBar отображается в строке состояния на 20 баллов

#iphone

#iPhone

Вопрос:

Я использовал приведенные ниже коды для отображения вида (ViewController) в окне.

 ViewImagesController *vvViewImagesController=[[ViewImagesController alloc] init  ];
self.vViewImagesController=vvViewImagesController;
[vvViewImagesController release];
UINavigationController *a=[[UINavigationController alloc]initWithRootViewController: vViewImagesController];
[self.view addSubview:a.view];
  

но панель навигации появилась под строкой состояния на 20 баллов.

введите описание изображения здесь

Даже я использую коды:

 [a.view setFrame:CGRectMake(0.0f, 0.0f, 320.0f, 480.0f)]; 
  

чтобы переместить представление, но результат тот же.

Приветствуются любые комментарии

Комментарии:

1. 1: У меня такая же проблема, и я как раз собирался опубликовать вопрос! Спасибо, что спросили — мне будет интересно увидеть некоторые ответы. Для тех, кого интересует дополнительная информация, (по крайней мере, в моем случае) вид, содержащий UINavigationBar (то есть UINavigationController выход view ), имеет правильный размер, но NavigationBar смещен на 20 пикселей вниз от верхней части этого вида. Это также не связано с программными изменениями в строке состояния — я никогда к ней не прикасаюсь.

2. Пожалуйста, укажите больше контекста: кто такой self , загружаете ли вы с пера?, что в пере, если да. Возможно, если вы опубликуете xcproj, я мог бы вам помочь. (Кстати, у вас, похоже, происходит утечка обоих VCS, хотя это не вызвало бы этой проблемы).

3. self — это RootViewController, у него есть собственный вид выхода, я добавляю vViewImagesController.view к этому представлению

4. на выходе RootViewController: строка состояния, верхняя панель, нижняя панель не указаны

Ответ №1:

Вот что вам нужно сделать. Это 1 строка, и это работает:

В viewDidLoad в vvViewImagesController:

 [self.view setFrame: [self.view bounds]];
  

Вжик!

Ответ №2:

попробуйте вместо

 ViewImagesController *vvViewImagesController = [[ViewImagesController alloc] init];
UINavigationController *a = [[UINavigationController alloc] initWithRootViewController:vvViewImagesController];

[self presentModalViewController:a animated:YES];

[vvViewImagesController release];
[a release];