我正在使用TTLauncherView,为此,我将视图控制器声明为TTViewController,就像在TTCatalog教程应用程序中一样。在该视图中声明TTLauncherView var,添加项目等等。
在我的应用程序的主视图中是一个按钮,使用以下代码调用上一个视图:
-(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 Class Hierarchy和TTViewController是一个UIViewController子类。
popupViewController是一个TTPopViewController(及其子类)方法!我没有使用TTCatalog教程应用程序。我迷路了。任何帮助将不胜感激。
感谢。
答案 0 :(得分:8)
有同样的问题并发现了错误!
当您忘记根据Three20设置说明将-ObjC和/或-all_load添加到其他链接器标志时会发生这种情况。可能是你将它们添加到项目级别,并在较低级别具有覆盖设置 - 对我来说就是这种情况。