0

我正在嘗試使用SFSafariViewController顯示一個URL。這裏是我的代碼:(topmostController指向,是的,最上面的控制器)SFSafariViewController顯示任何URL的空白屏幕

SFSafariViewController *safariVc = [[SFSafariViewController alloc] initWithURL:url]; 
[[UIViewController topmostController] presentViewController:safariVc animated:YES completion:nil]; 

不管我努力表現的URL,我得到這個:

enter image description here

地址欄空白且無響應,刷新按鈕不起任何作用,所有底部按鈕都被禁用,沒有頁面,並且頂部欄的佈局會混亂。

我試過多次使用多個域,但它總是一樣的。我究竟做錯了什麼?

+0

該問題可能是'[UIViewController topmostController]'的實現。你可以發佈嗎?根據我的經驗,當您嘗試在視圖控制器上呈現您無法呈現的視圖控制器(就係統而言)時,會發生這種情況 – Dima

+0

@Dima,因爲它只是返回最頂端控制器的助手。如果它不工作,Safari瀏覽器控制器根本不會顯示。它返回正確的視圖控制器(我已經把一個斷點和驗證) –

+0

這實際上不是很正確。當試圖在容器中以自定義方式顯示的子視圖控制器(即,技術上未提供)呈現時,我曾經發生過這種情況。演示文稿似乎工作,但結果與截圖相同。從容器出示使其工作正常。您是否試圖在包含的視圖控制器上呈現?無論如何,你粘貼的代碼沒有問題,所以問題必須在其他地方。 – Dima

回答

1

請嘗試此方法。

1,檢查UIApplication.shared.keyWindow

2,是否視圖控制器上keyWindow存在的來源?

3,如果不存在,對該源窗口執行makeKey()