2015-04-12 1 views
4

Я хотел был бы перезагрузить мой взгляд так, чтобы viewDidLoad повторил всю свою работу. Как я могу это сделать в Swift?Как я могу полностью перезагрузить представление, чтобы viewDidLoad снова запускался?

+1

Какой смысл делать это? Не было бы легче переместить код, который вы хотите запустить в 'viewDidLoad', в другое место, например' viewWillAppear'? – dasblinkenlight

+0

Может быть. В этом случае, как я могу снова запустить viewWillAppear? – webmagnets

+0

Почему этот вопрос был проголосован? Было ли это плохо сформировано? – webmagnets

ответ

3

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

Если у вас есть код, который вы хотите выполнить несколько раз в течение всего срока действия вашего контроллера представления, поместите его в отдельные методы и вызовите их из viewDidLoad и из других частей вашего кода, где они вам понадобятся.

Подробнее о жизненном цикле контроллера просмотра вы можете узнать в documentation от Apple.

+0

Я получил его для работы. Пришлось очистить свой источник данных uicollectionview сначала, а затем вызвать отдельный метод, полученный из viewDidLoad. Благодарю. – webmagnets

+0

Что делать, если в моем приложении я создаю пользовательский интерфейс программно и в диспетчере вида? Я добавляю все представления из метода viewDidLoad? В этом случае, если я создаю общий метод, то эти представления будут создаваться и добавляться несколько раз. Поэтому, чтобы избежать этого, мне придется удалить каждый вид, отключить его и снова выполнить этот метод. Так должна быть лучшая альтернатива этому? – ViruMax

0

Вы можете позвонить по телефону ViewDidLoad вручную, но это не рекомендуется. Лучше всего поставить весь код внутри viewDidLoad другими способами (например, loadData). И снова вызовите этот метод, когда вам это нужно.

Но это зависит от того, зачем вам это нужно. Часто ViewWillAppear или ViewDidAppear - лучший выбор.

+0

Что делать, если в моем приложении я создаю UI программно и в viewController, я добавляю все представления из метода viewDidLoad? В этом случае, если я создаю общий метод, тогда эти представления будут создаваться и добавляться несколько раз. Поэтому, чтобы избежать этого, мне придется удалить каждый вид, отключить его и снова выполнить этот метод. Так должна быть лучшая альтернатива этому? – ViruMax

Смежные вопросы