国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

IOS Whose view is not in the window hierarchy報錯

2019-11-08 00:26:55
字體:
來源:轉載
供稿:網友

昨天項目要上線,測試出來這個bug,界面怎么都跳轉不出來,調試了一個多小時,還是想不出來原因,后來才注意到控制臺打印出來了 Whose view is not in the window hierarchy這一行,就上網搜搜,終于有大神給了解決辦法,感謝感謝! 先交代下錯誤發生的背景:項目里有個推送,推送過來的時候會在項目里有個彈框,點擊彈框的確定按鈕的時候,會跳轉到一個web界面,項目剛運行出來在主界面的時候,推送可以跳轉出來界面,點擊應用進入其他界面的時候,再推送點擊彈框就不會跳轉界面了。 解決辦法:

在 一個 ViewController 里面調用另外一個 ViewController 是出現這個錯誤:

該錯誤一般是由于在 viewDidLoad 里面調用引起的,解決辦法是轉移到 viewDidAppear 方法里面

在 AppDelegate.m 中調用遇到這個錯誤

解決辦法1:

UIViewController *toPRootViewController = [UIapplication sharedApplication].keyWindow.rootViewController; while (topRootViewController.presentedViewController) { topRootViewController = topRootViewController.presentedViewController; }

//[topRootViewController presentViewController:yourController animated:YES completion:nil]; //or [topRootViewController myMethod];

解決辦法2:

UIStoryboard *mainstoryboard = [UIStoryboard storyboardWithName:@”MainStoryboard” bundle:nil]; LoginViewController* loginViewController = [mainstoryboard instantiateViewControllerWithIdentifier:@”LoginViewController”]; [self.window makeKeyAndVisible]; //[LoginViewController presentViewController:yourController animated:YES completion:nil]; //or [LoginViewController myMethod];

我遇到的主要是第一種情況,上面的情況說,是在控制器A里調用控制器B的時候,控制器A還沒有初始化完,就調用了控制器B,讓把調用控制器B的方法寫在viewDidAppear里,但是我想了想,我的情況和這個不太一樣,我是整個項目有一個父類控制器,所有的控制器都是繼承自父類控制器的,項目剛運行的時候第一個界面會觸發父類控制器會走ViewDidLoad這個方法,再單擊進入其他界面的時候就不會調用ViewDidLoad這個方法了,我的通知是寫在ViewDidLoad方法里的,所以我想在第二次觸發父類控制器的時候通知就不管用了,所以我把通知寫在了ViewWillAppear,這下可以正常跳轉界面了!!!,very good!,這是我遇到的情況,僅供大家參考。

補充,今天中午興高采烈的來寫博客了,下午又出現問題了,我了個去!!!!,只能在主界面跳轉web界面,其他界面接受推送都跳轉不了web界面,現在終于解決:跳轉界面的時候延遲2秒,還有一個地方,跳轉界面的時候模態推出需要是最上一層控制器模態推出其他控制器,才可以正常跳轉到web界面,至于怎么獲取到最上一層控制器看鏈接:http://pinkstone.co.uk/how-to-avoid-whose-view-is-not-in-the-window-hierarchy-error-when-presenting-a-uiviewcontroller/


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 融水| 滨海县| 台山市| 进贤县| 南通市| 基隆市| 桂平市| 库伦旗| 新建县| 偃师市| 昌乐县| 曲阜市| 宜章县| 子长县| 民勤县| 陆良县| 仙桃市| 桑植县| 石楼县| 福安市| 临泽县| 阿荣旗| 伊金霍洛旗| 修水县| 武胜县| 格尔木市| 淮阳县| 鲁山县| 梓潼县| 赤城县| 丰台区| 龙胜| 那曲县| 陆河县| 正蓝旗| 济阳县| 嵩明县| 灵川县| 乌鲁木齐市| 晴隆县| 峨边|