2013-06-22 37 views
0

我有一個MainViewController類設置了一個簡單的筆尖。在筆尖上,我只有這幾個物體。我已將popoverViewController的文件所有者設置爲MainViewController。 enter image description here需要的NIB文件中的一些物體的清晰度

我已在popoverViewController類設置爲我的PVController類,這樣我可以把按鈕/代碼/標籤等 enter image description here

的酥料餅的工作正常,但有些事情是我百思不得其解,我需要幫助理解。

  1. 新創建PVController類有一個init方法是從未加載酥料餅時調用。然而,popover仍然有效?如果我在 - (IBAction)按鈕中放置了斷點,當我點擊它們的按鈕時會調用它們。但是init永遠不會被調用。但是,如果我轉到文件所有者(MainViewController)並執行 - > PVController * pv = [[PVController alloc] init],那麼只有在它被調用的時候。所以我的第一個問題是,會不會有什麼問題,如果我做分配/在FileOwner初始化一個IBOutlet,因爲它似乎沒有它的工作(本書雖然是叫PVController的init方法心不是)?爲什麼沒有被稱爲?
  2. 如果我沒有決定創建IBOutlet中在FileOwner爲酥料餅的視圖控制器的參考口,讓我的它強?或弱?我noobish的直覺告訴我弱,因爲它已經被筆尖擁有的,但是當我把軟弱,我得到旁邊IBOutlet中的初始化一個黃色的錯誤說消息

enter image description here

+0

閱讀此:http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/Archiving/Articles/codingobjects.html(因爲該對象是從NIB文件中取消存檔...) – Wain

+0

相關:[爲什麼沒有調用基於自定義nib的表格單元格的init方法](http://stackoverflow.com/q/6942152/335858)。 – dasblinkenlight

+0

你也應該閱讀[資源編程指南(http://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/LoadingResources/),這說明,除其他事項外,正確的所有權政策與使用筆尖對象。 –

回答

1

所以我第一個問題是,如果我不在FileOwner中分配/初始化一個IBOutlet,會不會有任何問題

不,不會有任何問題。 Infact IBOutlets從來沒有手動分配+ init。

+0

謝謝。好。所以有一件事,如果我需要在init方法中初始化的iVars,因爲它沒有被調用,因爲它是從nib中取消存檔的,那麼我必須採用方法#2?即文件所有者的alloc /和init? –

+0

最後一部分,IBOutlet會變得強大嗎?或者它應該很弱 –

+1

使其變弱,因爲彈出窗口已被超級視圖保留。 –