Есть возможность создать 3 файла с XIB в Xcode 4.3?

Я заметил, что нет возможности выбрать «С XIB для пользовательского интерфейса» в Xcode 4.3 при создании нового файла.

Что я делаю, я создал новый файл с h и m, и после этого я добавляю новый файл просмотра с расширением xib, но он не распознал файл заголовка.

Где старая возможность создать 3 файла в Xcode 4.3 (h, m и xib)? существует там?

Спасибо.


person Elad Hadad    schedule 22.02.2012    source источник
comment
Вы правильно установили имя класса в окне инспектора для файла xib?   -  person Mudit Bajpai    schedule 22.02.2012
comment
Да, это странно, единственный новый файл, который позволяет вам сделать это сейчас, — это подкласс класса Objective-C класса UIViewController.   -  person Mick MacCallum    schedule 06.03.2012


Ответы (2)


У меня работает как для проектов iOS, так и для OS X.

В iOS вы должны использовать UIViewController* в качестве суперкласса. То есть в поле с надписью «Подкласс» введите UIViewController. И то же самое касается OS X, но там «Подкласс» должен быть NSViewController**.

*: UITableViewController и подобные контроллеры представления в UIKit также должны работать.

**: NSTableViewController и аналогичные контроллеры представлений в Cocoa также должны работать.

person rastersize    schedule 22.02.2012

Чтобы загрузить представление из xib, выполните следующие действия:

  1. Создайте для него файл h+m (Command+N -> [Cocoa Touch|Cocoa] -> класс Objective-C)
  2. Создать xib-файл (Command+N -> Пользовательский интерфейс -> Вид)
  3. Откройте xib в Interface Builder, выберите только одно представление, существующее там, и вставьте имя вашего класса в поле «Пользовательский класс» (находится на правой боковой панели, 3-я вкладка)

После загрузки представления из xib вы получите желаемое представление.

+ (id) instanceWithXib: (NSString*) nibName
{
NSArray* elements = [[NSBundle mainBundle] loadNibNamed: nibName owner: self options: nil];
for (NSObject* object in elements) 
{
    if ([object isKindOfClass: self.class]) 
        return object;
}

return nil;
}
person MikeGer    schedule 24.02.2012