2011-12-05 57 views
3

我有一個ViewController,它有2個不同大小的NSView。我想將自定義ViewController的視圖作爲子視圖添加到這兩個NSView,並使其動態調整大小以填充(2個父視圖)。在主佈局的實現文件中,我可以很好地完成這個任務,但它的代碼很多。我想讓我的自定義ViewController完成所有工作。爲此,我需要知道我將自定義視圖添加到的視圖的高度和寬度。有一個parentViewController屬性,但它沒有爲我做任何事情。有沒有辦法引用視圖被添加到的視圖?添加子視圖時訪問父視圖

在我的自定義視圖控制器viewDidLoad方法中,我想能夠有

[self.view setFrame:CGRectMake(0, 0, 
    self.parentViewController.view.frame.size.width, 
    self.parentViewController.view.frame.size.height)]; 

,但高度和寬度在這裏都爲零。

我一直在挖掘文檔幾個小時,我仍然困惑。任何幫助將非常感激。

回答

4

parentViewController屬性應該設置在第一位。如果沒有設置,它將爲零。您沒有指定它是否正確設置。有一個更簡單的方法來做到這一點,假設您的視圖的超級視圖設置正確。試試這個:

[self.view setFrame:self.superview.frame]; 

或者如果你需要改變那裏的東西,那麼在superview的框架中創建rect。

+0

我會在我的自定義視圖控制器的viewDidLoad方法中設置parentViewController嗎?謝謝你的提示! – Ethan

+0

如果您在任何全局變量中維護對它的引用或從任何其他方法獲取它,那麼可以這樣做。我會說,你應該設置它,當你分配和初始化你的自定義視圖控制器 – MadhavanRP

相關問題