解決“whose view is not in the window hierarchy” 的錯誤

在iOS 中彈窗時有時會失敗,打印下面的錯誤信息

Warning: Attempt to present on whose view is not in the window hierarchy!

調用方法是

[self presentViewController:secondView animated:YES completion:nil];

原因是因為self有可能不是頂層窗口,改用下面的方式調用

UIViewController * top= [UIApplicationsharedApplication].keyWindow.rootViewController;
[top presentViewController:secondView animated:YES completion:nil];

用上面的代碼有時還是不能解決,最終改用下面的代碼

-(UIViewController *) topMostController {
  UIViewController*topController = [UIApplicationsharedApplication].keyWindow.rootViewController;
  while(topController.presentedViewController){
    topController=topController.presentedViewController;
  }
  returntopController;
}

UIViewController * top = [self topMostController];
[top presentViewController:secondView animated:YES completion:nil];
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,229評論 25 708
  • Today's topic is how do you think of the death of the act...
    hongwang閱讀 271評論 0 1
  • 我的憂愁是如此的無力 就像一只漂泊的小船 雙槳沒有丟失 也還完好,靜靜地躺在那里 和我一起 不想劃了 不知要去向哪...
    shadowunique閱讀 166評論 0 1
  • 聽說失眠的夜晚你都想回一次家鄉(xiāng) 坐在屋頂,遙望星辰和月亮 你說你的狗也差不多老的不成模樣 你說,唉,這他媽操蛋的時...
    為伴閱讀 371評論 0 4
  • 今天周末,不能老窩在家里,本來打算打羽毛球去,但沒有第三人換手就沒去了。老公說去銀行辦下業(yè)務,我順便去商場買一套...
    上善若水澤萬物閱讀 295評論 0 2

友情鏈接更多精彩內容