2012-01-17 91 views
1

我有一個UIViewControllerMyClass最初沒有XIB,並已編程初始化。現在,我不想從XIB加載它,但我想製作一個小的50x50 UIView(設置疊加視圖),並且我想將其添加到MyClass,因此,而不是以編程方式聲明新的設置疊加視圖,我以爲我會創建一個XIB文件,將文件的所有者設置爲MyClass,在MyClass.h中聲明一個IBOutlet UIView *settingsOverlay,並將其鏈接到XIB中。添加UIView子視圖不工作

然後在viewDidLoad方法中,我做了[self.view addSubview:settingsOverlay],但由於一些令人討厭的原因,它不起作用。它只是不顯示。我嘗試以編程方式創建一個簡單的UIImageView並將其添加到子視圖中,並且它工作得很好,但是通過XIB完成時,它不起作用。任何人都可以指出什麼可能是錯的?請讓我知道我可能需要包含哪些其他細節。

+0

你能展示一些代碼嗎?你如何初始化控制器? XIB文件的文件名是什麼? – murat 2012-01-17 16:32:25

回答

1

創建用於設置重疊視圖的廈門國際銀行,並設置它的主人到MyClass的不會隱導致該XIB被加載的手動實例化一個結果我的課。您將不得不手動加載MyClass viewDidLoad中的設置覆蓋視圖XIB,並將其添加爲子視圖。加載它並將所有者作爲自身傳遞將導致它綁定到您創建的IBOutlet,但是您仍然必須將其添加爲子視圖。

在viewDidLoad中的代碼應該是這樣的:

[[NSBundle mainBundle] loadNibNamed:@"OverlayView" owner:self]; 
[self.view addSubview:self.overlayView]; 
1

您需要settingsOverlay將被設置爲加載MyClass的廈門國際銀行。嘗試在addSubview調用之前添加此行。

[[NSBundle mainBundle] loadNibNamed:@"MyClass" owner:self options:nil]; 
相關問題