TTViewController и метод popupViewController - PullRequest
5 голосов
/ 26 января 2010

Я использую TTLauncherView и для этого я объявляю контроллер представления как TTViewController, как в учебном приложении TTCatalog. Объявите переменную TTLauncherView внутри этого представления, добавьте элементы и т. Д.

В главном окне моего приложения есть кнопка, вызывающая предыдущий вид со следующим кодом:

-(void) switchToButtonOrderingView
{
    ButtonOrderingViewController *ButtonOrderingView=
    [[ButtonOrderingViewController alloc] initWithNibName:@"ButtonOrderingViewController" bundle:nil]; 
    self.ButtonOrderingViewController = ButtonOrderingView; 
    [self.view insertSubview:ButtonOrderingView.view atIndex:10];
}

Когда я нажимаю кнопку, приложение тормозит этим методом, который относится к TTViewController.m:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
  UIViewController* popup = [self popupViewController]; //brakes up here
  if (popup) {
    return [popup shouldAutorotateToInterfaceOrientation:interfaceOrientation];
  } else {
    return [super shouldAutorotateToInterfaceOrientation:interfaceOrientation];
  }
}

и ошибка выглядит так:

[ButtonOrderingViewController popupViewController]: нераспознанный селектор отправлен на экземпляр

Проверено, чтобы увидеть Иерархию классов Three20, и TTViewController является подклассом UIViewController.

popupViewController - это метод TTPopViewController (и его подклассов)! Которым я не пользуюсь и не использую учебное приложение TTCatalog. Я потерялся. Любая помощь будет оценена.

Спасибо.

1 Ответ

8 голосов
/ 24 февраля 2010

Была такая же проблема и обнаружена ошибка!

Это то, что происходит, когда вы забыли добавить -ObjC и / или -all_load к другим флагам компоновщика в соответствии с инструкциями по настройке Three20. Может быть, вы добавили их на уровень проекта и изменили настройку на более низком уровне - так было для меня.

...