2013-02-06 31 views
-1

我有一個關於iOS中的窗口和viewcontroller的問題。我只是看看我今天正在處理的iOS項目的應用程序代理,並發現它需要有...什麼是iOS應用程序委託中的self.window

UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController; 

在我的應用程序中。

這裏有幾個問題:

  1. 這是否意味着navigationController是我的應用程序的根視圖控制器? NavigationController是UIViewController的子類,但其任務僅用於在導航欄中提供導航功能,是否正確?

  2. 什麼是self.window?我認爲我理解'view'和'viewController'的概念,但我不太明白'窗口'是什麼...... iPhone有一個屏幕,但MacPro可以有2個顯示器;這些窗口是否適用於iOS和OS X?

+0

請做出投票和一些意見爲理由 –

+0

爲什麼這個問題得到了票?這些問題是明確規定的,對其他人有用和有趣。不贊成... – avenger

回答

0
  1. 可能。 self.window.rootViewController將從故事板中返回窗口的根視圖控制器,在這種情況下,我認爲。事實上,這條線把對象返回給導航控制器並不會讓它成爲一個 - 它將成爲故事板中的任何東西(帶有該左箭頭的控制器不會與其他任何東西相連)。假設轉換是正確的,這可以讓你編寫諸如navigationController.topViewController之類的東西,而不是讓編譯器抱怨它。至於導航控制器的功能,它確實提供了導航欄的功能,但它也顯示了其內容控制器的視圖,其topViewController的視圖將在啓動時看到。

  2. iOS中的一個窗口是一個UIWindow,它是UIView的一個子類,因此它與OS X中的窗口不同。查看UIWindow類參考的Overview部分,瞭解它的功能。

相關問題