有個需求,在項目中隨時使用 presentViewController來顯示一個界面,好比彈窗提示或者人臉解鎖,都是在任何狀況均可能出現的。app
在presentViewController 調用前,已經有提示框了;由於系統用的是UIAlertController,這樣的話是沒法執行下一個彈窗的,spa
看了網上的方法直接獲取根視圖 調用,方法是能夠的,但會出現以前的彈窗錯位,能夠嘗試把以前的彈窗刪除3d
有必要的話 刪除前記錄彈窗內容,解決當前的後,在彈出原來的;io
//獲取根視圖class
UIViewController *appRootVC = [UIApplication sharedApplication].keyWindow.rootViewController;方法
UIViewController *topVC = appRootVC;im
if (topVC.presentedViewController) {項目
//有麼有persentview 有了刪除margin
topVC = topVC.presentedViewController;top
[topVC dismissViewControllerAnimated:NO completion:nil];
}
//根視圖跳轉
[appRootVC presentViewController:dvc animated:YES completion:nil];