簡體   English   中英

具有透明背景的模態UISplitViewController

[英]Modal UISplitViewController with transparent background

我需要模態呈現一個UISplitViewController(在iPhone和iPad上),並且它應該具有透明的背景(我將添加模糊視圖)。 當呈現UIViewController時,我能夠做到這一點,但是它不適用於分割視圖控制器。 我的拆分視圖控制器有2個導航控制器。

我的結果是主視圖控制器具有黑色背景。

謝謝您的幫助。

您的UISplitViewController是根視圖控制器嗎? 如果沒有,它可能會表現出奇怪的行為。 每個蘋果:

注意

“ ...雖然可以在其他一些容器視圖控制器中將拆分視圖控制器作為子級安裝,但在大多數情況下,不建議這樣做。拆分視圖控制器通常安裝在應用程序窗口的根目錄下。...”

我已經使用了這一點(從Detail視圖控制器調用,將Split View Controller與兩個nav控制器一起使用。)這時,我想重置nav堆棧:

let firstVC = self.storyboard?.instantiateViewController(withIdentifier: "FirstViewController") as! FirstViewController
let secondVC = self.storyboard?.instantiateViewController(withIdentifier: "SecondViewController") as! SecondViewController
    // Get a reference the the Master View nav controller
let masterNav = self.splitViewController!.viewControllers[0] as! UINavigationController
    // Set desired VC's as nav stack RootViewControllers        
self.navigationController?.setViewControllers([matchVC], animated: true)
masterNav.setViewControllers([masterMatchTableView], animated: true)

如果要維護導航堆棧,則可以在兩個導航控制器上調用.pushViewController

如果您仍在進行此工作,請發布一些代碼,我很樂意進行查看。

編輯:

因此,您不能以模態形式顯示拆分視圖控制器: https : //developer.apple.com/library/content/documentation/WindowsViews/Conceptual/ViewControllerCatalog/Chapters/SplitViewControllers.html

拆分視圖控制器必須始終是您創建的任何接口的根。 換句話說,您必須始終將UISplitViewController對象中的視圖安裝為應用程序窗口的根視圖。 然后,拆分視圖界面的窗格可能包含導航控制器,選項卡欄控制器或實現界面所需的任何其他類型的視圖控制器。 拆分視圖控制器不能以模態顯示。

我上面發布的代碼段將同時顯示主視圖和詳細視圖。 或者,您可以顯示一個新的VC作為“詳細視圖”,並將UISplitViewController.preferredDisplayMode = .primaryHidden設置為以模態顯示一個VC。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM