1

私はiOSにかなり慣れていないので、答えを明確にしてください。UIAlertController を別の UIViewController にカプセル化して、iOS 8 で廃止されたため、UIActionSheet の代わりとして使用することをいじっています。

アイデアは、後方互換性と前方互換性のある 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