1

我对iOS相当陌生,所以请保持答案清楚。我一直在尝试将 UIAlertController 封装在另一个 UIViewController 中,以将其用作 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];
}

UIAlertController 移动到一个错误的位置

4

0 回答 0