簡體   English   中英

兩個UIViewController,一個XIB文件

[英]Two UIViewController, one XIB File

比方說,我有三個UIViewController

  • UserFormViewContoller
  • NewUserFormViewController:UserFormViewController
  • UpdateUserFormViewController:UserFormViewController

因此,NewUserFormViewController和UpdateUserFormViewController視圖控制器繼承它的父級以共享基本功能。 不同的將是他們的方法,創建和更新。

觀點也有很多共同點,幾乎所有東西。 NewUserFormViewController和UpdateUserFormViewController之間的不同視圖組件是執行保存任務(創建或更新)的按鈕

是否可以讓兩個UIViewController共享一個XIB文件? 讓我們說,UserFormViewController.xib然后我做

[[NewUserFormViewController alloc] initWithNibName@"UserFormViewController" bundle:nil];
[[UpdateUserFormViewController alloc] initWithNibName@"UserFormViewController" bundle:nil];

另一個問題但重要的是, 當我用Interface Builder編輯xib文件時,它所討論的是什么所有者的參考插座和IBActions,NewUserFormViewController或UpdateUserFormViewController? (IBActions和Outlets顯示我們何時右鍵單擊占位符 - >文件所有者)

如果是這樣,我將只使用一個XIB文件並以編程方式添加其他特定的視圖組件(如果只有一個XIB文件,那么我可以在一個地方進行一些更改,但兩者都有效)

“文件所有者”只是一個約定,因此XCode可以在其檢查器中向您顯示正確的IBOutletIBAction 如果你創建一個泛型(用OO術語:抽象) UserFormViewController (.h,.m,.xib),在IB中連接它; 然后將它子類NewUserFormViewController兩個NewUserFormViewControllerUpdateUserFormViewController ,它們將從父類繼承它們的出口和動作而沒有任何問題。

@Armaan我通過簡單地調用子類'alloc init方法遇到了同樣的問題。 我通過使用initWithNibName修復了這個問題:並提供父類的xib文件名。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM