UIViewController-viewDidLoad, не будучи названным

Взято из https://stackoverflow.com/a/17690221/3032209 :

Вы должны обращаться к onPause () и onResume () WebView из onPause вашей деятельности ( ) и onResume () соответственно.

Приостанавливает любую дополнительную обработку, связанную с этим WebView и связанным с ним DOM, плагинами, JavaScript и т. Д. Например, если этот WebView отключен от экрана, это можно вызвать для уменьшения ненужного ЦП или сетевого трафика. Когда этот WebView снова «активен», вызовите onResume ().

31
задан Honey 18 September 2016 в 23:48
поделиться

6 ответов

Хорошо, я есть частичный ответ - может быть, гуру объяснят еще кое-что. Проблема заключается в следующем:

[self.navigationController pushViewController:myViewController animated:YES];

Если присмотреться, в этом случае self.navigationController равно нулю, поэтому push-сообщение никуда не отправляется.

Вместо этого, если я отправлю:

[self.view addSubview:self.myViewController.view];

Тогда появляется представление и вызывается -viewDidLoad .

Я не совсем уверен, почему self.navigationController не установлен в этом случае - единственное, что я могу придумать, это то, что self является подклассом UIViewController , а не UITableViewController (откуда пришел код pushViewController ).

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

Окончательное редактирование:

Ответы в комментариях ниже, я понял, что функция отображения, которую я на самом деле искал (учитывая, что myViewController является модальным):

[self presentModalViewController:myViewController animated:YES];

Спасибо всем за полезные ответы.

14
ответ дан 27 November 2019 в 21:49
поделиться

убедитесь, что выход просмотра в File's Owner (ваш подкласс viewController) подключен к фактическому представлению (то есть холсту 480X320 вы увидеть на экране, который вы используете для создания пользовательского интерфейса)

4
ответ дан 27 November 2019 в 21:49
поделиться

Мне кажется, проблема с заглавными буквами. Вы ссылаетесь на класс MyViewController вместо свойства myViewController в вызове pushViewController.

3
ответ дан 27 November 2019 в 21:49
поделиться

Проверьте журнал выполнения на наличие ошибок. Почти наверняка NIB не загружается, и в этом случае должна быть ошибка. Наиболее вероятная причина - отказ от установки в комплекте. Посмотрите на этапе сборки «Копирование ресурсов» и убедитесь, что XIB действительно копируется. Выполните сборку для симулятора, перейдите в каталог сборки и убедитесь, что NIB находится в пакете .app.

2
ответ дан 27 November 2019 в 21:49
поделиться

Решение найдено !!!!!

Даже нечто безвредное, как это делает ViewDidload .

Вставьте это сразу после alloc initwithnibname

viewController.view.hidden = NO; //calls viewDidLoad
8
ответ дан 27 November 2019 в 21:49
поделиться

RE: РЕШЕНИЕ НАЙДЕНО!!!!!

Действительно, это кажется рабочим решением, однако реальная хитрость заключается не в том, чтобы установить для свойства view.hidden значение NO, то, что заставляет представление загружаться из файла nib, является вызовом UIViewController, представление фактически загружается из пера только тогда, когда метод представления вызывается в первый раз.

В этом смысле простое сообщение [viewController view] заставит представление загрузиться из nib-файла.

33
ответ дан 27 November 2019 в 21:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: