В своем приложении для iPhone я создал пользовательский UIView, который я использую в нескольких различных контроллерах представления для отображения некоторой информации.
Я знаком с созданием ячеек таблицы клиента для использования в таблице, но я никогда не создавал пользовательское представление снова.
Мой вопрос: каков наилучший способ загрузки этого представления?Я попытался просто поместить представление в контроллеры представления. Я хочу, чтобы оно отображалось при использовании IB, но этого недостаточно.Мне кажется, что было бы разумно, если бы вы установили Class Class Identity для представления, которое должно загружать это представление при создании контроллера представления.Или, может быть, этого не происходит, потому что он не знает, из какого пера получить его (конечно, в своем собственном пике).
Поскольку это не контроллер представления, я не могу просто использовать initWithNibName.Я попытался использовать NSBundle loadNibNamed, как я делаю с ячейками таблицы, но это кажется ужасно большой объем работы.Код выглядит следующим образом:
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"MyCustomView" owner:nil options:nil];
for (id currentObject in topLevelObjects) {
if ([currentObject isKindOfClass:[MyCustomView class]]) {
self.customView = currentObject;
break;
}
}
[self.view addSubview:self.customView];
Должен быть более простой способ, не включающий цикл.Кроме того, создание представления таким образом заставляет меня потерять всю информацию от IB о том, где я фактически разместил представление.Он создан в 0,0, что не там, где я хочу.Да, я знаю, что могу установить новый кадр, но опять же, должен быть более простой способ.Есть ли способ сделать это через IB?Или хотя бы с меньшим количеством программной работы?