2012-12-13 123 views
0

假設您有一個應用程序,您肯定知道總是顯示一個UINavigationController,並且我需要從該控制器的外部以模態方式顯示另一個視圖控制器(例如:因爲我使用的是命令模式,而我不想給它一個視圖控制器的參考)。如何使用presentModalViewController在視圖控制器外部呈現模態視圖控制器:動畫?

有沒有一種安全的方式來獲得「根」導航控制器,並調用它的presentModalViewController:animated方法?

我試着用[UIApplication sharedApplication].keyWindow.rootViewController,但是I figured out that it was nil during an alert

+0

你的意思是你試過這個'[[(AppDelegate *)[[UIApplication sharedApplication]委託]窗口] rootViewController];'對嗎? –

+0

我的意思是'[UIApplication sharedApplication] .keyWindow.rootViewController',它工作得很好。那是錯的嗎? – David

+0

它應該工作在技術上!我不知道它爲什麼給你零 –

回答

1

您是使用故事板還是單獨的xibs?

如果您使用單獨的xib,那麼您將在applicationDidFinishLaunching中設置UINavigationController

您可以使導航控制器成爲應用程序委託的屬性。

然後,您可以通過獲取單例應用程序委託並從中獲取導航控制器屬性從任何地方訪問UINavigationController。

+0

我既不使用故事板也不使用xibs:全部「以編程方式」。我期待獲得「root」視圖控制器的「內置」方法,但我可能會使用委託方法,謝謝! – David

+0

啊,xibs或編程方式將這樣工作:D – Fogmeister

相關問題