天天看點

iOS presentViewController 推出半透明視窗簡單的實作方式

閱讀 正确使用PresentModalViewController 後,并參考了其他大牛的方法有所心得。要想實作presentViewController 推出半透明視窗并不是那麼難。

ChooseLocationController *locationVc = [[ChooseLocationController alloc]init];
    [locationVc setModalPresentationStyle:UIModalPresentationOverCurrentContext];//關鍵代碼
    ......
    [self presentViewController:locationVc animated:NO completion:nil];  
           

當然如果你不想在這裡設定彈出視窗彈出風格,你可以嘗試在 'chooseLocationController'中設定,讓每個控制器推出它時,它的背景都為半透明狀态,而不是黑色背景,您可以嘗試在chooseLocationController 中設定

- (instancetype)init
{
    self = [super init];
    if (self) {
        // 關鍵的彈幕,讓此控制器背景 為 設定的半透明顔色
        if ([[[UIDevice currentDevice] systemVersion] floatValue]>=8.0) {
            self.modalPresentationStyle=UIModalPresentationOverCurrentContext;
        }else{
            self.modalPresentationStyle=UIModalPresentationCurrentContext;
        }
        // 
        self.providesPresentationContextTransitionStyle = YES;
        self.definesPresentationContext = YES;
    }
    return self;
}
           

當然你需要在viewDidLoad方法中設定控制器的半透明顔色,就這麼簡單。