Почему позиции моих элементов пользовательского интерфейса меняются на popViewController? - PullRequest
0 голосов
/ 15 февраля 2012

Я недавно начал использовать конструктор интерфейсов, проблема, с которой я сейчас сталкиваюсь, заключается в том, что когда я использую кнопку back контроллера навигации, ось у моих элементов пользовательского интерфейса увеличивается примерно на 20-30 пикселей, есть ли некоторые настройки?я должен использовать, чтобы избежать этой проблемы?И они повышаются только когда я использую pushViewController, когда я использую popViewController, он загружается так, как мне нужно.

Код, который я использую для нажатия:

    examVC=[[ExampleClass alloc] initWithNibName:@"ExampleClass" bundle:nil];
    [[self navigationController] pushViewController:examVC animated:YES];

Я прилагаю изображения с вопросом.Обратите внимание, как метка опустилась примерно на 20-30 пикселей.

Почему это происходит?Что я делаю не так?

Спасибо за помощь.

Редактировать: для большей наглядности изменены экраны

Я использую нажимной код на круглой прямоугольной кнопке.

Экран 1: элементы пользовательского интерфейса установлены в моем IB

My UI elements in IB

Экран 2: Как это выглядит при нажатии из предыдущего представления Pushed from previous

Экран 3: Как это выглядит при нажатии из «Следующего просмотра»

Popped from the next

Ответы [ 3 ]

2 голосов
/ 15 февраля 2012

В контроллере моего домашнего экрана была скрыта панель навигации, размещенный мною экран был вторым видом, который появляется после домашнего просмотра. Я хотел скрыть панель навигации только в первом представлении, поэтому я использовал:

- (void)viewDidDisappear:(BOOL)animated
{
     [self.navigationController setNavigationBarHidden:NO animated:animated];
     [super viewDidDisappear:animated];
}

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

Итак, я поместил тот же код в viewWillDisappear, что устранило проблему. Так как панель навигации загружалась до загрузки следующего вида. Теперь представление загружается так, как я его разработал в конструкторе интерфейсов.

1 голос
/ 15 февраля 2012

Эй, я не знаю, будет ли это работать для вас или
нет, но в вашем IB смените верхнюю полосу None на Navigation Bar
enter image description here


Затем настройте свой элемент соответствующим образом и настройте код.

0 голосов
/ 24 марта 2015

Я перепробовал все предложения здесь, и ни одно из них не сработало.Мои элементы пользовательского интерфейса всегда были ниже при возврате к моему исходному контроллеру представления.Единственное, что исправило это для меня, - это зайти в мой nib-файл в Интерфейсном Разработчике и отключить Auto Layout.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...