Всплывающее окно контроллера модального представления iOS 5 с разделенным представлением: возможно или нет?

У меня в основном есть контроллер с разделенным представлением, и я сразу же хотел бы показать всплывающий модальный контроллер представления.

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

Я хочу сделать это с

[something performSegueWithIdentifier:@"login" sender:something];

Куда мне его поместить и к чему подключить переход (клянусь, я пробовал разные комбинации, ха-ха!)

(Я использую универсальный вид master-detail, начиная проект с Xcode 4.2)


person lol    schedule 03.01.2012    source источник


Ответы (1)


Я бы отобразил это из вашего начального контроллера подробного представления (правая панель вашего разделенного представления), поскольку оно всегда будет отправлять сообщение -viewDidAppear: независимо от ориентации запуска.

В вашем методе -viewDidAppear: контроллер разделенного представления представляет модальный контроллер. Каждый контроллер представления в контроллере разделенного представления уже будет иметь установленное свойство splitViewController. Убедитесь, что ваш переход подключен от контроллера разделенного представления (а не от одного из его дочерних контроллеров представления) к контроллеру представления входа в систему.

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    [self.splitViewController performSegueWithIdentifier:@"login" sender:self.splitViewController];
}
person Mark Adams    schedule 03.01.2012
comment
Вы совершенно потрясающие - почему это работает (и в чем разница между viewDidLoad и viewDidAppear?) - person lol; 04.01.2012
comment
Это работает, потому что сообщение -viewDidAppear: автоматически отправляется на ваш контроллер представления, когда его представление появляется на экране. -viewDidLoad: отправляется после загрузки представления контроллера представления и подключения всех его выходов. - person Mark Adams; 04.01.2012
comment
Еще один момент - я поместил это в viewDidLoad, и я устранил проблемы с представлением под ним, мигающим на секунду до того, как отобразился контроллер модального представления. все еще; Огромное спасибо! - person lol; 04.01.2012
comment
Обычно мне нравится выполнять модальные переходы в -viewDidAppear:, чтобы пользователь мог видеть анимацию представления на экране. Это помогает им понять, что это задача, которую необходимо выполнить, прежде чем можно будет продолжить работу с приложением. Apple использует эту технику повсеместно. Попробуйте запустить Messages.app без каких-либо диалогов, и вы увидите пустое табличное представление перед тем, как будет представлено новое модальное сообщение. - person Mark Adams; 04.01.2012
comment
ааа, да, я вижу - каждая другая анимация, которую я вижу, действительно появлялась именно по этой причине - мне просто нужно было, чтобы эта анимация при просмотре загружалась, чтобы приложение выглядело так, как будто оно «заблокировано» (т.е. вы не можете «попасть в ' основная часть приложения, пока вы не войдете в систему), но да, основная проблема с моей заключалась в том, что я пытался отобразить модальное окно из основного представления, а не детали (вероятно, до завершения загрузки разделенного представления?) - person lol; 04.01.2012
comment
Если вы запустите в портретной ориентации, главный контроллер представления даже не будет отображаться на экране, пока пользователь не коснется кнопки панели. - person Mark Adams; 04.01.2012
comment
touche - теперь это имеет такой смысл! :) - person lol; 04.01.2012
comment
привет @MarkAdams у меня проблемы с этим банкоматом. Вот я не очень понимаю куда подключать свой логин это так? UISplitViewController -> (как модальный) LoignView, а затем UISplitViewController -> (для подробного просмотра) MainPageView. Итак, два перехода, один к моей главной странице, а другой связан с логином? а затем я вызываю viewdidappear в классе MainPageView? Не был уверен, так как он выдает мне ошибку, что он не может найти переход, который имеет смысл, поскольку он не подключен к этому контроллеру. - person gdubs; 12.02.2013