Я создаю настраиваемый uiView, закрывающий окно. Он действует как приманка uiview в контроллере навигации. Так что мне пришлось сделать это так, чтобы закрыть панель навигации .... длинная история ...
Вот как это происходит.
self.searchPopDown.frame = CGRectMake(0, 20, self.navigationController.view.frame.size.width, self.navigationController.view.frame.size.height-20);
self.searchPopDown.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
20 - это компенсация строки состояния.
Затем я просто добавляю представление в качестве подпредставления в окно приложения.
//this will add the view ontop of a modalViewController and support rotation!
UIWindow* window = [UIApplication sharedApplication].keyWindow;
if (!window) {
window = [[UIApplication sharedApplication].windows objectAtIndex:0];
}
if ([[[window subviews] objectAtIndex:0] isKindOfClass:[SVProgressHUD class]]){
//There is a chance that the window will be the SVProgressHUD in this case we need to get the main window.
window = [[UIApplication sharedApplication].windows objectAtIndex:0];
}
[[[window subviews] objectAtIndex:0] addSubview:self.searchPopDown];
Все это работает отлично и шикарно. Однако я заметил кое-что странное. На iPhone размер этого представления будет изменен, чтобы закрыть UITabBar в нижней части моего приложения. Но на iPad его размер изменяется правильно, чтобы компенсировать UITabBar. Есть идеи, почему?
Спасибо
=================
Вот несколько снимков экрана, описывающих проблему. Вот как это выглядит, когда представление загружается с поддельным представлением всего. Отображается представление (с точки зрения пользователя только вид и кнопки на панели навигации немного изменились. Когда вы выполняете поиск, это поддельное представление исчезает, открывая реальный вид ниже с результатами поиска. На ipad поддельный вид не не закрывает панель вкладок. Почему этого не происходит и на iphone?
==========
edit 2 Еще одна странность. Я создаю сообщения журнала, чтобы узнать высоту навигационного контроллера. Он меняется на 49 в зависимости от того, отображаю ли я нормально или представляю как модальное представление и нет панели вкладок.
Таким образом, журнал говорит, что 431 должна быть правильной высоты. Я захожу в конструктор интерфейсов и настраиваю простой розовый вид, который измеряется на 431, и он выглядит великолепно :) Однако когда я вручную устанавливаю размер на 431, он не работает. Я должен установить размер 298, чтобы это работало правильно ... странно ...
Видите розовую полосу? Его высота буквально 431 ... и в журнале написано, что я так считаю ... но это не так: /
============
редактировать: 3
Я проследил это до фонового изображения с неправильным изменением размера логотипа пузыря ...
self.navigationController.view
представления? Не могли бы вы вместо этого использовать размер ключевого окна? - person F.X.   schedule 05.10.2012