initWithNibName 和 loadNibNamed 的區別和聯繫

    聯繫能夠使用此方法加載用戶界面(xib文件)到咱們的代碼中,這樣,能夠經過操做這個加載進來的(xib)對象,來操做xib文件內容。

    區別

1. ShowViewController的initWithNibName方法

ShowViewController * showMessage = [[ShowViewController alloc]


                                                initWithNibName:@"ShowViewController" bundle:nil];


            self.showViewController = showMessage;


            [showMessage release];

2.VideoCellController的loadNibNamed方法

NSArray * nib = [[NSBundle mainBundle] loadNibNamed:@"Save3ViewController" 

                                                          owner:self options:nil] ;

self.showViewController = [nib lastObject];

[nib objectAtIndex:0];

總結:

     只看他們初始化,那可能感受是同樣的。可是若是,打開分別看xib的關係的時候,才恍然大悟,原來他們的集成類都不同。

1. initWithNibName要加載的xib的類爲咱們定義的視圖控制器類 

  loadNibNamed要加載的xib的類爲NSOjbect。

(好比:甲,乙都買了一個iPhone,可是,甲的是本身的錢,而乙用的是某某的錢)

2.加載方式不一樣

 initWithNibName方法:是延遲加載,這個View上的控件是 nil 的,只有到 須要顯示時,纔會不是 nil

loadNibNamed方法:即時加載,用該方法加載的xib對象中的各個元素都已經存在。

(認真理解這句幫規:when using loadNibNamed:owner:options:, the File's Owner should be NSObject, the main view should be your class type, and all outlets should be hooked up to the view, not the File's Owner.)

相關文章
相關標籤/搜索