2014-10-17 74 views
-1

因此,這是我現在的待定體系結構 -如何從另一個NSViewController中包含的NSViewController訪問NSView

我有一個包含2個視圖的xib;在那個xib中我也放了兩個對象,視圖控制器。 每個視圖控制器都將其view連接到xib中的一個視圖。此XIB的

該文件的所有者是一個主視圖控制器中,具有在XIB

綁定到視圖控制器兩個視點控制器屬性現在我有一個NSWindowController,創建主視圖控制器的一個實例。

當我嘗試添加masterViewController.subViewController1.view我的窗前,我發現subViewController1nil

當我在我的NSWindowController初始化masterViewController,我打電話:

[masterViewController alloc] initWithNibName:"SubViews"] 

,並正確初始化,所有代碼都已設置,但我的subViewControllers從不初始化。

我認爲如果我打電話給initWithNibName,它會在我的xib中加載subViewControllers並將它們連接到我在masterViewController中聲明的屬性。但是,這似乎沒有工作,因爲initwithNibName調用後subViewControllersnil

我在考慮在masterViewController中明確地調用[[subViewController alloc] init],但這似乎並不奏效。

如果必須的話,我會將我的xib分成2個xib,分別具有2個視圖和視圖控制器作爲其所有者 - 但在我看來,理論上我應該能夠在一個xib中創建2個視圖控制器。

如果我正在做一些愚蠢的事,請讓我知道。我主要是在嘗試並試圖找到實現這一點的最佳方式。

在此先感謝!

+0

爲什麼你首先需要viewcontrollers?你是否試圖用Cocoa API開發iOS應用程序?它通常是您使用的WindowControllers。我通常不再使用窗口控制器。 – 2014-10-18 01:10:38

+0

@ElTomato啊對不起,這是一個OSX應用程序。我可能正在設計這個錯誤。你用什麼來代替NSWindowController?我有一個NSWindow,它包含一個按鈕,顯示更多信息的彈出窗口。但是按鈕和彈出窗口都包含基於哪個用戶登錄的文本。因此,我創建了一個包含按鈕和彈出窗口的根視圖控制器,並且該視圖控制器位於主窗口中 – 2014-10-20 17:32:52

回答

0

原來,子視圖控制器從未加載,只能初始化。我不得不訪問基本視圖控制器中的視圖來加載視圖控制器,然後加載它們的視圖。

相關問題