直接参考这个问题:
如何在 iPhone 的横向模式下停止 ABPersonViewController 和 ABNewPersonViewController 的旋转
当我不是推动视图控制器的人时,如何防止此屏幕在 iOS 6 中旋转?场景是我创建了一个新联系人,然后用户按下“创建新联系人”或“添加到现有联系人”按钮。生成的屏幕是 ABNewPersonViewController 但因为我无法直接访问旋转方法,所以无法阻止它旋转。
截屏:
上图取自 的子类ABUnknownPersonViewController
,在这个子类中,我实现的唯一功能是重写旋转方法,如下所示:
- (BOOL)shouldAutorotate
{
return NO;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
if(toInterfaceOrientation == UIInterfaceOrientationPortrait)
return YES;
return NO;
}
但是,问题是,当按下上图中的一个按钮以覆盖 iOS 6 上的旋转时,我无法将ABNewPersonViewController
按下的屏幕子类化。关于如何合法访问这些按钮或覆盖旋转的任何想法在被推动以防止它这样做的屏幕上?
更新 1:
我试图在ABNewPersonViewController
and上创建一个ABUnknownPersonViewController
覆盖旋转方法的类别(我知道,这并不理想),然后全局导入,但这不起作用。除此之外,我完全不知道如何覆盖这种行为。有什么建议么?
更新 2:
是否可以获得对其中按钮的引用UITableView
并覆盖它们调用的方法?或者访问私有 API 是否违反了 Apple 条款?到目前为止,试图调查这种方法并没有真正取得任何进展。