[英]How to load an XIB?
我有一個帶2個屏幕的應用程序(MainViewController和AboutViewController)。 用戶單擊按鈕后,我想加載AboutViewController屏幕,該屏幕在另一個XIB中定義。
看起來很簡單,但我今天似乎無法找到我的谷歌。 我怎么把它關掉?
當你調用[AboutViewController init]
,它應該調用某種形式的[super init]
,它是[UIViewController init]
的同義詞。 發生這種情況時,視圖控制器將自動查找名為(在您的情況下) AboutViewController.xib
的nib文件。 如果找到該文件,則會將其內容加載到視圖控制器中。
基本上,您需要做的就是初始化視圖控制器,並確保它與關聯的nib文件具有相同的名稱。
如果要將具有不同名稱的nib文件加載到視圖控制器中,可以顯式調用initWithNibName:bundle:
:,使用您喜歡的任何nib文件的名稱。
如果標准init(具有相同名稱的nib文件)不適合您,您可以檢查幾件事。
UIViewController
子類的init方法也調用[super init]
UIViewController
子類的init方法 使用“關於”屏幕,您可能只想顯示視圖然后將其關閉。 因此,您可以只覆蓋當前視圖,而不是使用全新的視圖控制器。
假設你有一個伊娃
UIView *aboutUsView;
有適當的財產。
在您的視圖控制器中執行:
[[NSBundle mainBundle] loadNibNamed:@"AboutUsView" owner:self options:nil]; // Retains top level items
[self.view addSubview:aboutUsView]; // Retains the view
[aboutUsView release];
要刪除視圖,例如在連接到視圖上按鈕的操作中,請執行以下操作:
[aboutUsView removeFromSuperview], aboutUsView = nil; // Releases the view
NSBundle loadNibNamed:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.