Может ли представленный контроллер представления также быть контроллером представления представления?

Поверх существующего представления я хочу :a )отображать экран для пользователя b )затем отправьте SMS c )отобразить пользователю другой экран.

Для a )я делаю это:

[[UIApplication sharedApplication].delegate.window.rootViewController presentViewController: firstController animated: NO completion:nil];

и для b )я делаю то же самое, за исключением того, что это, конечно, представляет другой vc, MFMessageComposeViewController.

Однако для того, чтобы появился b ), я сначала должен закрыть первый контроллер представления, используя :

   [[UIApplication sharedApplication].delegate.window.rootViewController dismissViewControllerAnimated:NO completion: nil];

. Пока это работает, я вижу, как появляется первое представление, а затем вижу, как появляется представление для создания SMS. Когда SMS отправляется, я делаю это, чтобы закрыть окно создания SMS

   [[UIApplication sharedApplication].delegate.window.rootViewController dismissViewControllerAnimated:NO completion: nil];

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

На самом деле экран перед просмотром SMS и после него одинаков, за исключением того, что они имеют разный текст, поэтому самая простая последовательность шагов будет:

a )представить контроллеру просмотра текст «abc» b )представить контроллер SMS c )при отправке SMS отключить контроллер SMS d )обновить текст в первом контроллере представления, используя IBOutlet e )закрыть первый контроллер представления.

Однако, как упоминалось ранее, если я не отключу первый контроллер представления, контроллер SMS не появится. Итак, мой главный вопрос: как я могу представить контроллер SMS поверх контроллера первого представления?

8
задан Peter Hosey 23 April 2012 в 23:10
поделиться