Показывать заставку при загрузке контроллера представления из другого контроллера представления - PullRequest
0 голосов
/ 27 января 2012

У меня есть приложение, которое открывается с заставкой (Default.png), а затем загружает первый вид (ViewController1) в контроллер навигации. Сразу же создается экземпляр ViewController2 (VC2) и помещается в контроллер навигации:

[self.navigationController pushViewController:VC2 animated:NO];

Таким образом, когда я запускаю приложение, отображается изображение по умолчанию, затем кратко отображается представление ViewController1, пока не будет загружена (а затем отображена) ViewController2.

Как я могу остановить краткое отображение ViewController1? Могу ли я расширить отображение Default.png, пока не отобразится VC2, или закрыть ViewController1 изображением Default.png, пока не отобразится VC2?

Большое спасибо.

Ответы [ 4 ]

2 голосов
/ 27 января 2012

Если вам нужно только показать VC2 без VC1, в методе viewDidLoad вашего VC1 вы можете сделать self.view.hidden = YES;, затем нажать VC2 без анимации

1 голос
/ 27 января 2012

Я думаю, что в вашем случае вы хотите, чтобы VC2 была вашей отправной точкой, а VC1 - специальным заставкой.Изображения default.png должны отражать внешний вид вашего приложения, чтобы создать впечатление, что ваше приложение запускается и работает быстрее, чем может показаться.(Это взято из Apple HIG )

Возможно, вы захотите сделать VC1 вашим новым экраном-заставкой / загрузочным экраном.Вы можете превратить это в простую страницу ожидания или загрузки, а затем загрузить VC2, как только обо всем в вашем приложении позаботитесь.Default.png может быть изображением экрана загрузки и может создать впечатление, что ваше приложение загружается сразу.

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

Еще одна мысль: вы можете загрузить напрямую в VC2 и просто представить представление о ходе загрузки.Я использовал MBProgressHUD , чтобы заблокировать пользователя, пока я загружаю информацию или выполняю задачи, которые ему нужно ждать.Это может быть другой вариант.Надеюсь, эта информация поможет.

0 голосов
/ 27 января 2012

Я не думаю, что вы можете изменить поведение Default.png.Я бы предложил вам создать UIImageView в ViewController1 с Default.png в качестве его изображения.Присвойте ему тот же размер, что и экран, и добавьте его как подпредставление, которое полностью покрывает его.Таким образом, вы дважды увидите Deafult.png и после этого перейдете к ViewController2

0 голосов
/ 27 января 2012

Вы можете добавить UIImageView к VC1 с помощью Default.png, а затем удалить его в viewDidDisappear:.

...