loadView: функции в UIView iOS - PullRequest
       51

loadView: функции в UIView iOS

8 голосов
/ 17 октября 2011

Я не понимаю механизм функции loadView: (эта функция в UIView).

Я создал проект, как показано ниже:

  • Сначала я создалiPhone-проект, основанный на окнах.
  • Затем я создал UIView подкласс
  • Затем я создал UIViewController подкласс без xib.
  • Наконец, в* loadView: функция класса, который я создал на третьем шаге, я определяю объект UIView (в классе, который я создал на втором шаге) как переменную представления объекта UIViewController (на третьем шаге).

Если я пропущу последний шаг и поместу оператор NSLog(@"test LoadView"); в функцию loadView:, то при запуске проекта оператор NSLog(@"test LoadView"); вызывается непрерывно, результатом выполнения является переполнение.

Пожалуйста, объясните мне!Спасибо!

1 Ответ

15 голосов
/ 17 октября 2011

loadView: вызывается только когда свойство view имеет значение nil.Используйте это при создании представлений программно.default: создать объект UIView без подпредставлений.Например -

- (void)loadView 
{ 
    UIView *view = [[UIView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame]; 
    [view setBackgroundColor:color]; 
    self.view = view; 
    [view release]; 
}

Реализуя метод loadView:, вы подключаетесь к поведению управления памятью по умолчанию.Если памяти мало, контроллер представления может получить сообщение didReceiveMemoryWarning.Реализация по умолчанию проверяет, используется ли представление.Если его представление не находится в иерархии представлений и контроллер представления реализует метод loadView:, его представление освобождается.Позже, когда требуется представление, метод loadView: снова вызывается для создания представления.

Не уверен, почему вы хотите использовать loadView:, но вы можете сделать то же самое в viewDidLoad:

Ссылка -

  1. Почему эта программа iPhone не вызывает -loadView?
  2. loadView

Надеюсь, это поможет.

...