我对iOS很新,所以请保持清楚的答案。我一直在用另外的UIViewController封装UIAlertController来使用它作为UIActionSheet的替代品,因为它在iOS 8中已被弃用。
这个想法将替代UIActionSheet,它是向后和向前兼容的,例如称之为ImmortalActionSheet。
如果组件在iOS 8或更高版本中使用,它可以使用UIAlertController,否则它将回退到UIActionSheet。这将使它成为一个向后和向前兼容的操作表,以替换我正在使用的应用程序周围的许多操作表。是的,我需要保持向后兼容性。
我已将其原型化,但无论出于何种原因,当我呈现ImmortalActionSheet时,UIAlertController视图本身将始终显示在左上角(0,0)。无论我改变中心,它都不会移动。
-(void) loadView
{
UIView * child = nil;
if ( [UIAlertController class] )
{
UIAlertController * alertController = [UIAlertController alertControllerWithTitle:@"Make Choice!!" message:@"Choose one!" preferredStyle:UIAlertControllerStyleActionSheet];
for (UIAlertAction * action in actions ){
[alertController addAction:action];
}
child = alertController.view;
[self addChildViewController:alertController];
}
self.view = [[UIView alloc] init];
self.view.backgroundColor = [UIColor clearColor];
[self.view addSubview:child];
}