Представление ViewController за другим - PullRequest
2 голосов
/ 30 августа 2009

У меня есть средство выбора изображений, которое собирает данные для другого контроллера представления (TTMessageController from three20), и я хочу, чтобы этот компоновщик сообщений появлялся позади средства выбора изображений, поэтому, когда средство выбора изображений выдвигается, будет уже появляться контроллер сообщений с предварительно заполненными данными.

Код, подобный этому

[self.navigationController presentModalViewController:composeController animated:NO];
[picker dismissModalViewControllerAnimated:YES];

и наоборот не будет работать вообще. Что делать? Как представить composeController позади уже представленного picker контроллера?

Заранее спасибо.

Ответы [ 4 ]

0 голосов
/ 07 сентября 2009

Вам нужно разделить эти анимации, чтобы они не выполнялись в одном цикле выполнения. Я столкнулся с ситуацией, когда ОС не нравится отклонять и представлять модальные представления вплотную.

Попробуйте это:

- (void)myCallbackMethod{

[picker dismissModalViewControllerAnimated:YES];
[self performSelector:@selector(presentMessage) withObject:nil afterDelay:0.25];


}

- (void)presentMessage{

[self.navigationController presentModalViewController:composeController animated:YES];

}
0 голосов
/ 02 сентября 2009

На самом деле удаление анимации из справки ViewController.

[picker dismissModalViewControllerAnimated:NO];
[self presentModalViewController:composeNavController animated:NO]; // If YES it crashes

Но это не для iPhone, если поймешь, что я имею в виду, даже угасание, бросок черного или просто какой-нибудь визуальный эффект заставит его выглядеть намного лучше. Технически это работает.

0 голосов
/ 07 сентября 2009

Вместо того, чтобы пытаться представить другой viewController за средством выбора, вы можете отклонить модальный контроллер представления средства выбора изображений, нажать контроллер сообщений (оба с анимированным: НЕТ), а затем использовать CATransition для выполнения вашей собственной какао-подобной анимации анимация выбора изображения вне экрана.

0 голосов
/ 01 сентября 2009

Изменить:

Хорошо, я думаю, что проблема здесь в модальном бите, так как iPhone действительно не нравится, когда у вас есть 2 вида модальных или даже анимация от одного модального вида к другому.

Они определенно должны быть модальными? Как насчет добавления их в обычный стек навигации?

Вы могли бы сначала добавить представление сообщения в стек (не анимированное), чтобы оно появилось, когда вы вернетесь назад.

Попробуйте это:

Порядок, в котором вы добавляете представления в стек, влияет на порядок, в котором они будут отображаться при отклонении их.

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

[self.navigationController pushViewController:composeController animated:NO];
[self.navigationController pushViewController:picker animated:YES];

Затем, когда вы закончите работу со сборщиком, вы можете «вернуть» представление обратно в составитель сообщений:

[self.navigationController popViewControllerAnimated:YES];

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

Надеюсь, это поможет!

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