2013-07-17 3 views
3

Когда я кладу специальную ячейку, я создаю класс UITableViewCell и добавляю наконечник с таблицей; это очень ясно. Я хочу понять, как управлять ситуацией, когда я должен использовать эту настраиваемую ячейку в некоторых классах, где я использую tableview.IOS: использование пользовательских ячеек в некоторых классах

Например, у меня есть контроллер представления под названием «FirstViewController» и внутри этого контроллера представления у меня есть TableView, импортировать класс моей Tableview ячейки и я создаю IBOutlet для своей ссылки

#import "MyCell.h" 

IBOutlet MyCell *mycell; 

В владелец файла класса MyCell в инспекторе идентификации я установил класс FirstViewController, таким образом, я могу легко связать IBOutlet моей пользовательской ячейки.

Таким образом, я могу использовать MyCell только для FirstViewController, есть ли способ разделить MyCell для других классов как SecondViewController?

благодаря

ответ

5

Вы можете создать подкласс UITableViewCell, скажем CustomCell. Создайте xib-файл, добавьте UITableViewCell в качестве корня xib. Измените личность UITableViewCell как CustomCell. Подключите розетки к элементам CustomCell. Но не давайте права на какой-либо viewController.

Instantiate со следующим кодом в tableView:cellForRowAtIndexPath: в любом ViewController вы хотите

CustomCell *customCell = [[NSBundle mainBundle]loadNibNamed:@"CustomCell" 
                 owner:nil 
                options:nil][0]; 
+0

ИНТ пути? static NSString * MyIdentifier = @ "MyIdentifier"; \t MyIdentifier = @ "datacell"; \t \t DataCell * cell = (DataCell *) [список dequeueReusableCellWithIdentifier: MyIdentifier]; \t if (cell == nil) { \t \t [[NSBundle mainBundle] loadNibNamed: @ «DataCell» владелец: self options: nil]; \t \t cell = dataCell; \t} – CrazyDev

+0

@blackguardian Это почти правильно, но, как вы предполагали, вам все еще нужно иметь IBOutlet для ячейки в VC. Если вы сохраните IBOutlet, вам нужно будет сделать этот конкретный VC владельцем ячейки. вы хотите избежать этого обряда. 'if (! customCell) customCell = [[NSBundle mainBundle] loadNibNamed: @" CustomCell " владелец: nil опции: nil] [0]; ' – Anupdas

1

«есть способ поделиться MyCell для других классов как SecondViewController?» Я бы пропустил случай IB и программно добавился в SecondViewController.

Если вы хотите придерживаться IB, вам нужно создать пользовательский компонент, добавьте XCode, это возможно, но для этого потребуется больше времени.

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