我定义了以下类别,以允许TabBarController
@implementation UITabBarController (MyApp)
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
@end
现在有几个viewcontroller
我不想允许横向模式。因为我使用了类别,所以忽略viewcontroller
中的方法。有办法解决这个问题吗?
(我知道你可以继承UITabBarController
,但苹果自己不鼓励这样做。)
答案 0 :(得分:0)
您可以询问类别中的当前视图控制器:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return [[self selectedViewController] shouldAutorotateToInterfaceOrientation:interfaceOrientation];
}
您可能希望根据需要实施更多逻辑。此外,子类化在您的情况下比自定义类别更好,覆盖全局的东西可能会在未来的某个时刻中断。