2013-11-07 2 views
0

Я создал объектный класс класса «customTable.h» под USC.Пользовательский под просмотр в UIViewController не отображается

Затем я создал пользовательский вид в XIB. Я пошел к инспектору идентификации и под обычным классом я выбрал имя созданного мной класса (customTable) в качестве владельца файла. В customTable View в xib я добавил пару UILabels и subview. Для subview я выбрал его и перешел под пользовательский класс и выбрал другой пользовательский класс «menuTable».

В файле customTable.h я связал menuTable с XIB как IBOutlet, потому что я хочу иметь возможность выполнять некоторую конфигурацию розетки в инициализации представления.

в файле customTable.m у меня есть:

- (id)init 
{ 
    if(self = [super init]) 
    { 
     [self initialize]; 
    } 
    return self; 
} 

- (id)initWithFrame:(CGRect)frame 
{ 
    self = [super initWithFrame:frame]; 
    if (self) { 
     // Initialization code 
     [self initialize]; 
    } 
    return self; 
} 

- (id)initWithCoder:(NSCoder *)aDecoder 
{ 
    if(self = [super initWithCoder:aDecoder]) 
    { 
     [self initialize]; 
    } 
    return self; 
} 
- (void)initialize 
{ 
    /*some special configuration code for menuTable 
    is here */ 
} 

В раскадровке я добавил подвид для просмотра ViewController, а затем сказал раскадровки я хотел подвид использовать пользовательский класс «Настроенная». В файле .sh-файла viewcontroller я связал это представление как IBOutlet.

@property (weak, nonatomic) IBOutlet customTable *cView; 

Когда я запускаю его в симуляторе, подсмотр не появляется в диспетчере представлений. Я добавил некоторые точки останова в файл customTable.m и вызывается методы инициализации. Так почему он не появляется?

+0

Вы имеете в виду, что IBOutlet установлен на 'nil' или что элемент не отображается в контроллере представления? –

+0

Элемент не отображается в контроллере представления. – user1066524

+0

Вы используете init или initWithFrame? вы можете попробовать добавить цвет фона к вашему представлению. – TreeTree

ответ

0

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

1

Мое предложение находится в вашем раскадровке, перетащите «Контейнерный вид» поверх вашего основного вида. Это создаст контейнер с подключением к новому контроллеру представления в вашем раскадровке. Затем вы выбираете новый контроллер представления и настраиваете пользовательский вид в свой CustomTable в инспекторе идентификации. BTW, используйте свой класс CustomTable, поскольку он является классом.

+0

Я пробовал это. Это не сработало. – user1066524

+0

Вы добавили кнопки ярлыков в новый вид контейнера (окно со стрелкой, указывающей на него в раскадровке)? Кроме того, убедитесь, что, когда вы перетаскиваете контейнерный вид на свой основной вид, вы видите зеленый значок +, прежде чем отпустить мышь. – Xuan

+0

Да, я раньше использовал контейнеры. вид контейнера отлично работает. это просто вид CustomTable не появляется, когда я устанавливаю пользовательский класс View в «CustomTable». – user1066524

Смежные вопросы