После того, как я просмотрел документы, я решил использовать следующую технику, используя «viewWithTag», чтобы извлечь подвыборы из основного корневого представления, возвращаемого loadNibNamed: owner: options: для начала я немного смутился, поскольку предположил loadNibNamed: owner: options вернет массив, содержащий все мои элементы пользовательского интерфейса (например, метки, кнопки и т. д.), когда на самом деле он возвращает корневой вид (или корневые представления). Может кто-нибудь подтвердить, что я делаю это правильно, мне просто интересно, есть ли другие (возможно, лучшие) способы извлечения и установки элементов из xib-файла?Извлечение элементов пользовательского интерфейса из xib?
- (void)loadView {
NSLog(@"HYBRID UI: %s", __PRETTY_FUNCTION__);
NSArray *nibArchive = [[NSBundle mainBundle] loadNibNamed:@"Interface" owner:self options:nil];
NSLog(@"SIZE: %d ARRAY: %@", [nibArchive count], nibArchive);
// UIView
UIView *nibView = [nibArchive lastObject];
[nibView setFrame:[[UIScreen mainScreen] applicationFrame]];
NSLog(@"FRAME: %@", NSStringFromCGRect([nibView frame]));
[self setView: nibView];
// UILabel
UILabel *nibLabel = (UILabel *)[nibView viewWithTag:101];
[nibLabel setText:@"FRINGE"];
[nibLabel setTextColor:[UIColor whiteColor]];
// UIImageView
UIImageView *nibImageView = (UIImageView *)[nibView viewWithTag:102];
[nibImageView setBackgroundColor:[UIColor whiteColor]];
}
веселит Гэри
Привет, Оле, я просто делал небольшое исследование вокруг предмета. Первоначально я не использовал xib, и все представления были настроены с использованием кода. Затем я начал смотреть на половину дома с помощью xib и подключить его к iVars через IBAction. В приведенном выше примере я просто играл, чтобы посмотреть, как я могу получить доступ к элементам в xib без использования IBAction или подключения к нему вручную изнутри IB. – fuzzygoat
Точно, что я был после «Чтобы перейти к другим объектам в иерархии, вы можете перемещаться по иерархии вручную (в большинстве случаев это не очень хорошая идея), использовать теги так же, как вы, или использовать розетки». очень признателен. – fuzzygoat