Three20 TTNavigator TTViewController автоматическая загрузка XIB

Я подумал, что хочу поделиться с вами своими знаниями о фреймворке Three20.

Это раздражает, если вы используете TTNavigator и у вас есть собственный VC, который является подклассом TTViewController. Он не загружает NIB автоматически.

TTNavigator* navigator = [TTNavigator navigator];
TTURLMap* map = navigator.URLMap;
[map from: @"app://myvc" toViewController: [MyVC class]];

Существует обходной путь и довольно элегантное решение.

Просто создайте еще один подкласс TTViewController и переопределит класс, чтобы иметь это:

- (void) loadView
{
    [super loadView];

    // load automatically the NIB
    [[NSBundle mainBundle] loadNibNamed: NSStringFromClass([self class]) owner: self options: nil];
}

VC автоматически загрузит NIB при первой загрузке VC.


person kororo    schedule 13.12.2010    source источник


Ответы (1)


Проект TTNibDemo в каталоге примеров имеет VC, который является подклассом TTViewController. Этот VC имеет перо, и он загружает перо с помощью функции в AppDelegate. Проверьте это, если это не работает для вас.

person Malolan Santhanakrishnan    schedule 13.12.2010
comment
да, я видел это, это некрасиво. вам нужно каждый раз указывать имя NIB и помещать пользовательскую функцию в URL-адрес. - person kororo; 15.12.2010