Проблемы с iOS 5: панель навигации обрезается после увольнения модального - PullRequest
0 голосов
/ 24 ноября 2011

У меня есть симпатичное маленькое приложение в магазине приложений, которое очень хорошо для себя. Жизнь была великолепна, пока iOS 5 не появилась в городе. Теперь у меня есть ряд проблем с моим приложением, которые я не могу исправить, потому что я понятия не имею, что происходит, потому что я чувствую, что это проблемы iOS 5, а не мои.

Было ли руководство по конвертации iOS 5, которое я пропустил? Или они просто все ради забавы и хотят, чтобы мы выяснили, где были все пасхальные яйца?

Вот еще одна проблема, с которой я сталкиваюсь (которую я потратил так много времени, пытаясь исправить), которая вообще НЕ СУЩЕСТВУЕТ, когда я просто говорю, что хочу запустить приложение в хорошем старом версии 4.2:

Модальный вид

Мое приложение представляет собой простое приложение для чтения. У меня есть представление чтения книг, которое отображает текст с UIWebView. Одна из функций, над которыми я работал, - это возможность делать заметки во время чтения. Это достигается нажатием кнопки и представлением модального вида. Да, модальный вид. Самая простая вещь до iOS 5, которую вы могли сделать. Теперь, когда я отклоняю свое модальное представление, просто нажимая кнопку отмены, и просто отклоняю представление, когда я возвращаюсь к своему представлению читателя, панель навигации вверху поднимается на полпути от экрана! Этого не происходит в 4.2, но есть в iOS 5!

Что я могу сделать, чтобы решить эту проблему?

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

Ответы [ 4 ]

2 голосов
/ 25 ноября 2011

Ладно, я просто смог понять, что происходит в пламени. У меня было значение shouldAutorotateToInterfaceOrientation, установленное в переменную BOOL, чтобы при возврате modalView он не знал состояния / размера строки состояния. Исправлено, и проблема исчезла.

1 голос
/ 25 сентября 2012

Я видел ту же проблему отсечения.

Я обнаружил, что причиной моей проблемы было то, что я установил размер контента в модальном диалоговом окне (что я и сделал для макета iPad), поэтому удаление этих двух строк, казалось, решило проблему:

CGSize size = CGSizeMake(320, 480);
self.contentSizeForViewInPopover = size;

Я думал, что проблема была исправлена, но это не так. После просмотра кода, очистки сборки и повторного тестирования он оказался shouldAutorotateToInterfaceOrientation, который возвращал бы NO для всех ориентаций в течение короткого промежутка времени (flag == NO), пока приложение загружается (корневой контроллер) , Вы хотите вернуть хотя бы YES одной ориентации, например:

- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
    return !self.flag ? UIInterfaceOrientationPortrait == toInterfaceOrientation : YES;
}
1 голос
/ 24 ноября 2011

Основным изменением в iOS 5 является то, что свойство navigationController UIViewController больше не устанавливается для модальных представлений.Вместо этого есть новое (отсутствует в iOS 4) свойство parentViewController.Поэтому, когда вы используете navigationController в модальном представлении, вам нужно изменить логику на что-то вроде:

UIViewController* parent;
if ([self respondsToSelector:@selector(parentViewController)]) {
    parent = self.parentViewController;
}
else {
    parent = self.navigationController;
}

(Это из памяти, поэтому я не могу гарантировать, что каждый t разбит и каждыйя пересек.)

1 голос
/ 24 ноября 2011

У меня такое ощущение, что это как-то связано с тем, как вы представляете, и отказом от модального обзора.Apple представила новый метод представления мнений.Можете ли вы попробовать использовать тезисы вместо старых и посмотреть, решит ли это вашу проблему.

Итак, вот что вы делаете:

измените этот метод:

presentModalViewController:animated:

на новый предпочтительный метод, представленный в iOS 5:

presentViewController:animated:completion:

В зависимости от того, используете ли вы dismissModalViewControllerAnimated: для отклонения своего представления, измените его на dismissViewControllerAnimated:completion.

В этих методах также есть обработчик завершения, который очень полезен для выполнения дополнительной работы после представления / отклонения представления.,Может быть, это также помогает с другой проблемой.Дайте мне знать, если это поможет.

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