UIViewController viewDidLoad по сравнению с viewWillAppear: Каково надлежащее разделение труда?

Эти (int startCadence, int startSpeed, int startGear) параметры являются аргументами конструктора, и они установят поля cadence, speed Bicycle, и gear. Они доступны только в конструкторе. gear, cadence, и speed переменные экземпляра, уникальные для каждого Велосипедного экземпляра и referencable из других методов. Аргументы конструктора позволяют Вам обеспечивать параметры для инициализации объекта. В этом примере можно создать Велосипедный объект с механизмом 1, тактовым сигналом 0 и скоростью 0 как так:

Bicycle bike = new Bicycle(0, 0, 1);

Или можно создать движущийся Велосипед, где тактовый сигнал составляет 60 об/мин, и скорость составляет 10 миль в час в 3-м механизме как так:

Bicycle bike = new Bicycle(60, 10, 3);

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

160
задан Honey 8 September 2016 в 18:51
поделиться

1 ответ

viewDidLoad - это то, что вам нужно сделать один раз. viewWillAppear вызывается каждый раз, когда появляется представление. Вы должны делать то, что вам нужно сделать только один раз в viewDidLoad - например, устанавливать тексты UILabel. Однако вы можете захотеть изменить определенную часть представления каждый раз, когда пользователь получает ее для просмотра, например, приложение iPod прокручивает текст обратно вверх каждый раз, когда вы переходите к представлению «Сейчас исполняется».

Однако, когда вы загружаете что-то с сервера, вы также должны думать о задержке. Если вы упаковываете все сетевые коммуникации в viewDidLoad или viewWillAppear, они будут выполнены до того, как пользователь увидит представление, что может привести к кратковременному зависанию вашего приложения. Может быть хорошей идеей сначала показать пользователю незаполненное представление с каким-либо индикатором активности. Когда вы закончите настройку сети, что может занять секунду или две (или даже потерпеть неудачу - кто знает?), Вы можете заполнить представление своими данными. Хорошие примеры того, как это можно сделать, можно увидеть в различных клиентах Twitter. Например, когда вы просматриваете страницу сведений об авторе в Twitterrific, в представлении отображается только сообщение «Загрузка ...» до тех пор, пока не будут выполнены сетевые запросы.

249
ответ дан 23 November 2019 в 21:31
поделиться
Другие вопросы по тегам:

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