Подключить UILabel ни в Построителе интерфейс и Xcode?

Я пытаюсь сделать что-то простое, как добавить метку в представление в XCode и IB, и я не могу понять, как это сделать. Все образцы, которые я нахожу в интернете, предназначены для более старых версий IB, поэтому направления неверны.

У меня есть ярлык на моем .xib-файл, в моем контроллере.H файл у меня есть объявленный IBOutlet UILabel с настроенным свойством.

в моем контроллере.M файл я синтезировал это свойство.

в Interface Builder, я не могу для жизни меня рисунок как связать мою метку в моем коде с меткой на .xib. Всякий раз, когда я пытаюсь перетащить соединение с владельцем файла, единственным вариантом, который появляется, является "просмотр".

Если я смотрю на контроллер под окном библиотеки Interface Builder, метка отображается как UILabel под розетками. Я уверен, что это был тип "id", но он автоматически отображается как UILabel, и если я попытаюсь добавить "id", он тоже не работает.

может кто-нибудь точка меня где-нибудь, чтобы объяснить эту глупость? Это не должно быть так сложно сделать ярлык с текстом.

4 ответов


предполагая, что ваше представление называется ExampleView. Нажмите на владельца файла, а затем нажмите ⌘+4. Это выделит поле идентификации. Убедитесь, что имя класса совпадает с именем класса.

сохранить и закрыть построитель интерфейса, а затем перейти в Xcode и проверить:

// ExampleViewController.h
#import <UIKit/UIKit.h>

@class ExampleViewController;
@interface ExampleViewController : UIViewController {

    IBOutlet UILabel *label;
}

@property (retain, nonatomic) IBOutlet UILabel *label;

@end

в вашей .файл м:

// ExampleViewController.m
#import "ExampleViewController.h"

@implementation ExampleViewController

@synthesize label;

затем сохраните файлы xcode и откройте ExampleView. Перетащите метку в виде. Вы не должны подключать эту метку к файлам владелец.

ВМЕСТО ЭТОГО ВЫ НАЖИМАЕТЕ FILEOWNER. Нажмите ⌘+2 это откроет окно соединений. потом вы увидите свой выход. Нажмите и подключите это к ярлыку.


убедитесь, что строка свойства выглядит следующим образом:

@property (nonatomic, retain) IBOutlet UILabel *label;

оставьте (или установите) тип метки как UILabel в интерфейсе строителя. Если это не сработает, попробуйте File - > перезагрузить все файлы классов в Interface Builder. Ваш код выглядит хорошо, но CardNameLabel должен начинаться с нижнего регистра "c".


попробуйте это: нажмите на значок владельца файла, чтобы выбрать его, и перейдите на вкладку идентификатора инспектора (4-я вкладка) и проверьте значение Class настройка. Я предполагаю, что в настоящее время он установлен в UIViewController.

так как класс, который имеет IBOutlet вы объявили (или должны быть) подклассом UIViewController, вам нужно будет изменить имя класса на имя вашего подкласса (например,MyController, или как он сейчас называется).


предположим, что у вас есть viewController и файл xib, который имеет UILabel на этом. Шаги для подключения UiLabel (также xib-файла) к вашему viewController:

1) в заголовочном файле создайте объект и свойство UiLabel для него

IBOutlet UILabel *label;

@Property (Nonatomic, retain) IBOutlet UILabel *label;

и synchthesize в реализации файлом

2) Откройте файл xib в Interface Builder

дважды щелкните "владелец файла" , затем выберите viewController в раскрывающемся списке всплывающих окон, чтобы подключите xib-файл к контроллеру

3) щелкните правой кнопкой мыши владельца файла во всплывающем диалоговом окне:

  • укажите и перетащите плюш ( + ) рядом с "View" и поместите его в строку просмотра
  • укажите и перетащите плюш ( + ) рядом с "label" и поместите его на этикетке на вид

= > теперь метка и представление в xib-файле подключены к контроллеру