1

請幫我理解UiView和UIViewController的概念,我知道它像mvc模式一樣工作,而且據我所知UIView是視圖和控制器的視覺表示,它負責這個視圖對嗎?當我們用initwithnibname創建viewcontroller的實例時,我們以編程方式將某些視圖附加到某個控制器上,換句話說,我們說他負責繪製該視圖的控制器是?瞭解uiview和uiviewcontroller

如果我們不用nib初始化它,它是否會自動找到該筆尖?

這個附件也可以通過接口生成器,我是嗎?

但是presentModalViewController函數呢?他得到viewcontroller參數並顯示視圖,或者我不明白它的含義?也有可能做一個沒有xib文件的視圖,只有在viewcontroller和顯示它後?

回答

4

據我所知UIView是View和控制器的視覺表示,它負責 這個視圖對不對?

單個視圖控制器通常負責整個視圖層次結構。視圖控制器管理相關內容的「screenful」或至少一個區域。

,當我們創建視圖 - 控制的實例與initwithnibname我們編程 附加一些觀點有些控制器,換句話說,我們說的控制器,他是 負責起草這一觀點是?

不 - 視圖應該知道如何繪製自己。視圖控制器可能會告訴視圖要繪製什麼,但視圖需要知道如何將其渲染到當前圖形上下文中。

如果我們不用nib初始化它,它是否會自動找到該筆尖?

它可以。如果您將nil傳遞給nib名稱和包,則UIViewController將嘗試查找與視圖控制器類的名稱匹配的nib。但是,如果您願意這樣做,您可以覆蓋-loadView以編程方式創建您自己的視圖。

但是presentModalViewController函數呢?他得到視圖控制器參數 並顯示視圖或我不明白它的意思?

以模態方式呈現的視圖控制器仍負責其視圖層次結構。 -presentModalViewController:真正處理視圖控制器之間的關係 - 視圖控制器的視圖如何移動到屏幕上,以及完成後會發生什麼。

也是可以做一個沒有xib文件的視圖,只有在 視圖控制器和後顯示它?

是的,如果你願意,你當然可以這樣做。每個視圖都有一個-initWithFrame:初始值設定項,您可以使用它來初始化視圖,但有些視圖提供了其他選項。例如,UIButton有一個可用於創建按鈕的+buttonWithType:方法。