2016-11-26 61 views
2

我的這種情況與我在此處找到的其他任何示例都不同。我有一個基於標籤的應用程序。在其中一個選項卡上,用戶可以按下一個按鈕,一次從Web服務器下載多個文件。警告:不鼓勵在獨立視圖控制器上顯示視圖控制器

我使用的NSOperation來執行這些下載的,這樣我可以利用內置的依賴關係。下載全部發生在後臺線程上,以便應用程序保持響應。當最終下載完成時,我在屏幕上放置一個alertController,讓用戶知道它們已經完成。

如果用戶選擇當報警控制器介紹我得到的警告不同的標籤:「上分離視圖控制器呈現視圖控制器被泄氣」

如果他們仍然是開始下載同一個標籤那麼我不會收到警告。我試着更換:

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

[self.view.window.rootViewController presentViewController:alertController animated:YES completion:nil]; 

但結果是,alertController從未提出。

我在主線程上顯示alertController。

我沒有辦法預測下載完成時用戶將使用哪個選項卡視圖控制器,並且真的想要擺脫此警告。

我正在用obj-C在macOS和Xcode 8上開發。

+0

[警告:分離視圖控制器呈遞視圖控制器氣餒]的可能的複製(https://stackoverflow.com/questions/19890761/warning-presenting-view-controllers-on-detached-view-控制器是沮喪) –

回答

4

您需要將下載結果委託給頂層視圖控制器,這聽起來像您的UITabBarControllerUITabBarController當然是knows which tab is selected,或者它可以在其自身上顯示警報。

+0

真棒!這行代碼解決了我的問題:[self.tabBarController presentViewController:alertController animated:YES completion:nil]; – Scooter

1

寫來解決從當前VC呈現導航控制器或VC 警告

[self.view.window.rootViewController presentViewController:viewController animated:YES completion:nil]; 

要解決崩潰而解僱視圖控制器:

[self dismissViewControllerAnimated:YES completion:nil]; 

OR

如果你從一個childViewController呈現一個視圖,它會給你這個警告。爲了避免這種情況,您可以在childViewController的父級上顯示一個視圖。

[self.parentViewController presentViewController:viewController animated:YES completion:nil]; 
相關問題