view添加在window上面 在view上弹出UIAlertController

首先呢

UIAlertController是presentViewController  属于模型跳转 模型是vc才可以present  所以把添加在window上面的view赋值个vc  在vc上面进去present

    AppDelegate *delegate =(id)[UIApplication sharedApplication].delegate;

    UIViewController *vc = [[UIViewController alloc] init];//实例化一个vc

    vc.view = self.typeView;//self.typeView这个是添加在window上面的view

    [delegate.window addSubview:vc.view];//添加

    /*  弹出相册   */

    WS(weakself);

    _typeView.block = ^{

        UIAlertController *alertVc = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet];

        UIAlertAction *cancle = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction *_Nonnull action) {

        }];

        UIAlertAction *camera = [UIAlertAction actionWithTitle:@"打开相机" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {

            [weakself takePhoto];

        }];

        UIAlertAction *picture = [UIAlertAction actionWithTitle:@"打开相册" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {

            [weakself localPhoto];

        }];

        [alertVc addAction:cancle];

        [alertVc addAction:camera];

        [alertVc addAction:picture];

        [vc presentViewController:alertVc animated:YES completion:nil];

    };

原文地址:https://www.cnblogs.com/liaolijun/p/9754896.html