2012-04-11 62 views
1

UIView是否保留其相關的視圖控制器?UIView是否保留其視圖控制器

例如,在下面的代碼中,視圖由父視圖保留。如果這個視圖還保留了它的ViewController,那麼我可以繼續並在loadView方法中釋放控制器。

- (void) loadView { 

    ... 

    MyViewController* ctrl = [[MyViewController alloc] init]; 
    [self.view addSubview: ctrl.view]; 
    [ctrl release]; 

} 

另一種方法,我想是將跟蹤控制器作爲一個實例變量,並在適當時釋放它。

謝謝

回答

3

不,它不。你需要一個成員變量,正如你已經提到的那樣。

(視圖甚至不知道自己的的viewController)

0

你已經得到的東西有些落後:一個視圖控制器保留其觀點,不是周圍的其他方式。通常,一個視圖控制器一起管理屏幕上的整個視圖層次結構。儘管iOS 5允許您一次使用多個視圖控制器,但正確地做這些操作不僅僅需要將一個控制器視圖添加爲另一個控制器視圖的子視圖。關於這個過程的簡單易懂的解釋,請閱讀Matt Neuberg的書Programming iOS 5, 2nd Editionpreview of the View Controllers chapter。如果添加一個視圖控制器作爲另一個視圖控制器的子視圖,則父視圖將保留該子視圖,並且不需要爲其創建單獨的屬性。但在嘗試之前請閱讀文檔以避免大量頭部劃傷。

相關問題