presentModalViewController НЕ анимируется при отображении TTMessageController - PullRequest
1 голос
/ 11 мая 2010

У меня есть подкласс TTMessageController, который показывает ... НО он не анимирован, хотя и должен быть. Код, который отображает модальное представление, выглядит следующим образом (где PostToWebMessageController является подклассом TTMessageController:

if (self.toWebMsgController == nil) {
    self.toWebMsgController = [[PostToWebMessageController alloc] init];
}

UINavigationController *navController = [[UINavigationController alloc] init];
[navController pushViewController:self.toWebMsgController animated:NO];

[self presentModalViewController:navController animated:YES];

Что происходит, хотя это так: экран становится черным ... клавиатура прокручивается вверх, и затем появляется представление TTMessageController (не анимированное). Когда я отклоняю вид с помощью кнопки «Отмена», экран становится черным, а затем просто исчезает (без анимации).

Есть идеи, почему это происходит? У меня есть это с несколькими другими контроллерами TT *, и я не могу заставить один анимировать правильно с показом модально.

Спасибо

ОБНОВЛЕНИЕ:

Это происходит в КАЖДОМ UIViewController, который я пытаюсь представить модально. Экран становится черным, клавиатура анимируется вверх и затем просматривает дисплеи. Любые идеи, почему это может происходить ???

Ответы [ 3 ]

2 голосов
/ 12 мая 2010

День, чтобы понять это ... надеюсь, кто-то извлечет выгоду из моих болей!

Вот что происходит:

UIViewController, вызывающий presentModalViewController, сам вложен в UIScrollView, который содержится в ANOTHER UIViewController. Видимо, прикосновение какао не очень нравится. Во всяком случае, чтобы исправить проблему, я сделал следующее:

  1. Добавить свойство типа UIViewController в UIViewController, которое будет представлять контроллер модального представления (например, @property (nonatomic, retain) UIViewController *owningController;)

  2. Установите это свойство = для самого верхнего UIViewController (тот, который в данном случае содержит UIScrollView)

  3. В UIViewController, который показывает модальное представление ... измените это

[ self presentModalViewController: контроллер анимирован: ДА];

к этому ...

[owningController presentModalViewController:controller animated:YES];
0 голосов
/ 03 сентября 2013

У меня была такая же проблема.

Убедитесь, что ваш корневой контроллер (если вы представляете контроллер поверх него) для presentationStyle НЕ установлен в UIModalPresentationCurrentContext

0 голосов
/ 11 мая 2010

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

if (self.toWebMsgController == nil) {
    self.toWebMsgController = [[PostToWebMessageController alloc] init];
}

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:toWebMsgController];

//[navController pushViewController:self.toWebMsgController animated:NO];

[self presentModalViewController:navController animated:YES];

Если вам не требуется навигационная панель в модальном представлении, вам, вероятно, вообще не нужен UINavigationController.

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