2010-05-19 1 views
0

В моем приложении мне нужно загрузить различные .xib в разные ячейки tableView в зависимости от категории данных, которые я получаю от парсера. Я хотел спросить, возможно ли создать различные .xibs, принадлежащие к одному классу, поскольку это уменьшит нагрузку, поскольку у меня почти 13 категорий, поэтому 13 файлов .xib.Возможно ли создать разные .xib-файлы с использованием одного класса iphone sdk

Заранее спасибо.

+0

Сообщите, с какой проблемой вы столкнулись, чтобы получить правильное решение :) – Manjunath

ответ

1

Если вы имеете в виду, что вы хотите иметь несколько NIB для одного и того же контроллера, то это, безусловно, возможно. Фактически именно так осуществляется локализация приложения. Затем вы можете загрузить конкретный NIB при инициализации своего контроллера.

NSString *nibName = @"DefaultNibName"; 
if (someCondition) { 
    nibName = @"SomeOtherNib"; 
} 

YourViewController *controller = [[YourViewController alloc] 
           initWithNibName:nibName bundle:nil]; 
[self.navigationController pushViewController:controller animated:YES]; 
[controller release]; 
+0

Нет, я имею в виду, могу ли я создать несколько .xibs с тем же классом, что и владелец? – neha

+0

Это именно то, что вы делаете. Вы просто создаете стандартный контроллер с NIB, а затем копируете этот набор NIB раз. Каждый из этих NIB будет иметь тот же контроллер представления, что и владелец, и используя код, похожий на то, что я разместил, вы сможете выбрать тот, который вы хотите по их имени. – RaYell

+0

Ok RaYell .. Спасибо ... Это помогло .. – neha

1

Но как вы будете устанавливать соединения (розетки), которые будут отличаться в разных .xib-файлах?

Вы будете хранить множество выходов и действий в одном контроллере? Если да, тогда подумайте, что вы пытаетесь получить доступ к розетке, которая, как предполагается, будет иметь какой-то другой наконечник. Тогда что будет?

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

+0

Возможно ли создать несколько представлений в одном и том же .xib? – neha

+0

да, вы можете создать любое количество просмотров – Manjunath

+0

да, вы можете создать любое количество просмотров. Они будут в виде выходов в контроллере единого вида. например: если у вас есть 5 просмотров, ваш контроллер должен иметь пять выходов, чтобы подключиться к ним. Но скажите мне одно: вы так беспокоитесь о создании 13 контроллеров представлений, и если вы загружаете 13 просмотров в одном наконечнике, то что будет с вашей памятью ????? – Manjunath

2

@ «Я хотел спросить, возможно ли создать различные .xibs, принадлежащие к одному классу, так как это уменьшит нагрузку, поскольку у меня почти 13 категорий, поэтому 13 файлов .xib».

Файлы xib не являются нагрузкой на память, если они не загружены, и в этом случае создается объект владельца файла. Поэтому, имея в виду это, не имеет значения, сколько nibs у вас есть для вашего класса, для объекта каждого класса viewController загружается соответствующий xib. Таким образом, в конечном счете вам нужно поставить условие проверки, как указано RaYell, было бы лучше ввести эту проверку, где вы создаете объект viewController, вместо этого проверяя условие загрузки соответствующего xib.

Не беспокойтесь о создании 13 viewControllers, вам будет легче вносить изменения в свой проект позже, если есть изменения в требованиях. Вы оцените этот подход.

Если вы создаете только один подкласс класса UIViewController и загружаете один из 13 xib на основе какого-либо условия, скажем, возникает требование о том, что вы добавляете кнопку/label/textField в 13-й xib ТОЛЬКО и нуждаетесь в его ссылке в вашем класс viewController. Как бы вы это достигли, вы поддерживаете IBOutlet в общем классе viewController и вводите проверку if-else, чтобы определить, является ли она 13-й категорией. Код становится неопрятным с большим количеством условий if else.

+0

Спасибо Raj .. Это действительно руководствовался .. – neha

+0

Кроме того, возможно ли создать несколько видов в одном и том же .xib? – neha

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