我有一個ViewController有它自己的NIB。我想將NIB嵌入另一個主NIB中。我如何在Interface Builder中完成此任務,以及如何在代碼中引用它?如何在NIB中加載外部視圖?
回答
希恩阿拉姆,
如果您在Xcode中創建一個新的TabBar項目,你可以看到一個外部NIB是從IB現有對象加載。
Tab Bar Controller http://img.skitch.com/20100329-c2533dqft4q584424926fxfidb.preview.jpg您可以通過使用IB一個的viewController指定NIB(命令1)
First View Controller Attributes http://img.skitch.com/20100329-p83bgd8qyieb5h3dg27beinkj3.preview.jpg每個NIB都有一個所有者,它通常是該NIB中主視圖的控制器。您可以在Interface Builder中輕鬆創建視圖控制器的實例。只需拖出視圖控制器對象並適當地設置NIB屬性即可。
問題是,您沒有從Interface Builder內部尋址該控制器視圖的方法。您將需要編寫代碼將嵌入式視圖控制器的視圖添加爲主視圖控制器視圖的子視圖。實際上,如何實現這一點僅適用於您的應用程序,但它應該足以在主視圖控制器中引用嵌入式視圖控制器。
然後,在主視圖控制器的viewDidLoad
實現中,您將嵌入式視圖控制器的view
添加爲主視圖控制器的view
的子視圖。您可能不得不調整嵌入式視圖的框架以適當地適合。
我無法拖動一個UIViewController成我的XIB。當我添加一個UIView時,我沒有指定一個NIB名稱的選項。 – 2010-03-30 00:14:44
亞歷克斯的做法應該工作,但如果我理解正確,寧願一個方式,而不必在主視圖控制器的-viewDidLoad
方法中以編程方式[self.view addSubview:embeddedView]
。
我寫了一篇很長的博客文章,我們如何embed custom-view Nibs inside other Nibs。關鍵是在您的自定義視圖中重寫-awakeAfterUsingCoder:
,用從「嵌入」Nib加載的對象替換從「主」Nib加載的對象。
請注意,我們的自定義控制子UIView
,不UIViewController
(見Apple's docs on Custom view controllers:「你不應該使用多個自定義視圖控制器來管理同一視圖層次結構的不同部分。」)
- 1. 如何將.nib加載到視圖中?
- 2. 如何在另一個NIB的視圖中加載NIB?
- 3. 如何在iOS中正確加載nib中的子視圖?
- 4. 如何在Cocoa的Web視圖中加載nib/xib文件?
- 5. 如何在UITabViewController中加載不是視圖的NIB?
- 6. 如何將從nib文件加載的視圖居中?
- 7. NIB視圖在加載時沒有子視圖
- 8. 使用另一個nib文件的nib文件加載視圖
- 9. 如何將外部庫加載到SAP UI5視圖中?
- 10. 如何異步地將外部數據加載到視圖中
- 11. 界面生成器:如何從nib文件加載視圖
- 12. 如何從NIB加載UIView?
- 13. 如何加載nib時加載NSTableView?
- 14. 加載外部網站視圖jQuery ajax
- 15. Laravel 4:加載外部視圖
- 16. 無法從外部xib加載視圖?
- 17. 在視圖中加載nib文件的問題!
- 18. 在界面生成器中從nib文件加載子視圖
- 19. 在多視圖中加載多個外部圖像和js codeigniter
- 20. RootViewController未在NIB中加載
- 21. 如何淡出子視圖以顯示從.nib加載的UIViewController視圖
- 22. 如何在codeigniter2.1.3中加載外部javascript.php?
- 23. 如何更快加載外部圖像?
- 24. 如何添加燈箱圖片在jQuery中外部加載?
- 25. 使用NSViewController加載nib之後...如何訪問nib中的NSButton?
- 26. 如何動態加載局部視圖?
- 27. 如何從局部視圖加載javascript
- 28. 在角度html視圖中加載外部腳本
- 29. 是否可以在局部視圖中加載局部視圖?
- 30. 如何加載外部類?
當我將UIViewController添加到我的項目時,它佔用了整個視圖。是否有一種方法可以使其顯示在屏幕上顯示的某些其他元素的下方?例如,在我定位的UILabel下面? – 2010-04-06 20:57:08