Xcode 4: загрузка пера в методе в другом файле
Извините, если этот вопрос является элементарным, но я застрял на этой ошибке в течение последних 2 дней, и я не смог ее преодолеть. Я использую Xcode 4.3.2
Я пытаюсь загрузить перо с именем AController.xib в метод с именем "- (void) process" в файле с именем BController.m
Чтобы было ясно, я скопировал./A/AController.xib (который является UIView), ./A/AController.m, ./A/AController.h в каталог./B
Я упоминаю об этом только потому, что не уверен, имеет ли это значение для моего вопроса.
В настоящее время мой поток работает как потоки (что может быть моей проблемой):
- Представление загружается кнопкой "купить"
- пользователь нажимает кнопку "купить", у которой есть IBOutlet с именем "buyNow"
- "buyNow" вызывает "buy", которое затем вызывает "process"
Затем процесс пытается загрузить перо с помощью следующего (вариант 1):
AController * бла; for (объект id в комплекте){ if ([объект isKindOfClass:[класс AController]]) blah = (AController *) объект; } assert(бла!= ноль && "бла не может быть ноль"); [self.view addSubView: бла];
Я получаю сообщение об ошибке "Тема 1: сигнал SIGABRT" в main.m Я также пробовал (вариант 2),
AController *myView = [[AController alloc] initWithFrame:self.view.bounds];
[self.view addSubview:myView];
[AController release];
И (вариант 3)
AController * vc = [[AController alloc] initWithNibBundle:@"AController" bundle:nil]; [self.nc pushViewController:vc animated:NO];
Я получаю одинаковую ошибку для всех 3 вариантов. Каждый вариант был опробован в методе "процесс". "процесс" написан на Bm. Может кто-нибудь предложить какую-то помощь, чтобы я мог понять это? Любые указания относительно того, почему эти варианты не сработали, были бы очень полезны для моего понимания и получили бы высокую оценку. Спасибо за помощь нубу!
1 ответ
Если AController
это UIView
подкласс, он не может загрузить NIB. Убедитесь, что это на самом деле контроллер, но из initWithFrame
и способ, которым вы добавляете его в представление, выглядит так, как будто это не так, или обрабатывается неправильно.