Подтвердить что ты не робот

Xcode - Как подключить XIB к классу ViewController

Сначала я создал свой TestViewController.h и *.m. После этого мой TestView.xib.

Теперь мне нужно сказать мой xib: "Да, пожалуйста, возьмите класс TestViewController в качестве моего владельца файла".

Я открываю свой xib, перехожу к Identity Inspector своего файлового устройства и выбираю в TestViewController "Custom Class".

Но это кажется недостаточным - поскольку, когда я открываю TestView.xib, а затем выбираю "View Editor Assistent", он должен вызывать соответствующий ViewController в правой части разделенного экрана - в моем случае "TestViewController".час". Но это не так!

Нужно ли связать xib каким-либо образом с его диспетчером представлений, перетаскивая строки в файлы, как вы делаете это с выходами и действиями?

4b9b3361

Ответ 1

Нажмите, чтобы выбрать xib. Теперь выберите владельца файла. В панели атрибутов с правой стороны выберите третью вкладку "Идентификационный инспектор". Существует заголовок с именем Пользовательский класс. Дайте свое имя контроллера контроллера там. После этого вы можете связать элементы с владельцем файла.

enter image description here

Ответ 2

В контроллере представления создайте "представление" (UIView) и отметьте его как IBOutlet. (Когда вы используете правильные значения по умолчанию/шаблоны при создании файлов в xcode, это свойство должно быть там уже.) В Interface Builder создайте ссылку между основным видом и видом/представлением представления диспетчера/владельца файла. Только для полной картины: при создании/распределении контроллера вида вы должны запустить его с соответствующим XIB файлом. Это тот самый момент, когда объект контроллера представления привязан к представлению, которое создается из файла XIB.

Ответ 3

Я думаю, что столкнулся с этой ситуацией, когда создал подкласс UIViewController, но забыл проверить "с .xib для UI", когда я это сделал. Позже я вернулся и создал .xib отдельно.

Вот еще шаг за шагом, чтобы связать ваш новый UIViewController и .xib.

  • Выберите "Владелец файла" в разделе "Заполнители" в левой панели IB. В Property Inspector (правая панель IB) выберите третью вкладку и отредактируйте "Класс" в разделе "Пользовательский класс" как имя вашего нового подкласса UIViewController.

  • Затем нажмите Ctrl или щелкните правой кнопкой мыши на File Owner в левой панели и нарисуйте линию на верхнем уровне View в части Objects на левой панели. Выберите выход "view", и все будет готово.

Теперь вы можете настроить другие точки и действия. Вы готовы создать экземпляр своего контроллера представления в коде и использовать initWithNibName и имя вашего nib для его загрузки.

Ответ 4

1) Сначала, как и каждый из них, дайте имя контроллера вида в классе File Owner

2) Выберите "Владелец файла", перетащите строку оттуда, чтобы просмотреть это соединение.

3) Создайте экземпляр контроллера View и добавьте его в окно, чтобы фрагмент кода был следующим,

MyViewController *controller = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil];

4) Наконец, добавьте представление контроллера представления в виде subview в window.TO сделайте это, чтобы кодирование было следующим,

[window addSubview:[controller view]];

Попробуйте следующий фрагмент на appdelegate

- (void)applicationDidFinishLaunching:(UIApplication *)application {    

    // Override point for customization after application launch
    [window makeKeyAndVisible];

    MyViewController *controller = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil];
    [window addSubview:[controller view]];
 }

5) Используйте следующий фрагмент, чтобы увеличить размер окна, чтобы не отображалось никаких задержек

[controller.view setFrame:[[UIScreen mainScreen] applicationFrame]];

Теперь вы увидите контроллер своего вида, как вы ожидали...

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

Ответ 5

да, вы должны добавить свойство view к владельцам файлов этого контроллера представления из конструктора интерфейса:

Ответ 6

выберите файл fileownr, перейдите в окно инспектора удостоверений и измените имя класса владельца файла на ваш файл .h, который будет подключаться.