簡體   English   中英

如何在另一個xib的視圖中嵌入一個xib的UIViewController視圖?

[英]How to embed a UIViewController's view from one xib inside a view in another xib?

MyViewController.xib將File的Owner類設置為MyViewControllerUIViewController的子類),File的Owner視圖連接到包含一些子視圖的UIView

OtherViewController.xib將File的Owner類設置為UIViewController ,將File的Owner視圖連接到空的UIView

是否可以在Interface Builder中將MyViewController的視圖嵌入到OtherViewController.xib中的視圖中?

我嘗試將一個MyViewController實例添加到OtherViewController.xib中,但是我不能將它放在視圖中(因為它不是UIView )而且我無法訪問與MyViewController中的MyViewController相關聯的視圖(僅限於查看控制器本身,並沒有任何連接,使其轉到OtherViewController.xib)。

你可能不想這樣做。 按照View Controller編程指南中的警告進行操作:

注意:如果要將視圖層次結構划分為多個子區域並分別管理每個子區域,請使用通用控制器對象(從NSObject降序的自定義對象)而不是視圖控制器對象來管理每個子區域。 然后使用單個視圖控制器對象來管理通用控制器對象。

其視圖未填充窗口的UIViewController子類將不會像您期望的那樣運行。 它不會接收視圖控制器生命周期消息,旋轉消息或正確設置其parentView/navigation/tabBarController屬性。

UITableViewCell不應該是UIViewController的視圖。 它可能有一些控制器對象負責管理它的行為(雖然我懷疑這種行為可能都包含在單元格視圖中)但該控制器不應該繼承UIViewController。

自從發布了一些其他答案以來,這已經發生了變化 - 您想要查看UIViewController的最新文檔,特別是指南“從其他視圖控制器呈現視圖控制器”類參考指南部分 “實現容器視圖控制器” ”。 此外,WWDC 2012還有一個關於iTunes主題的視頻: Session 236 - iOS上視圖控制器的演變 (該視頻非常有用,它不僅僅是一般概述。)

你可以把它全部放在一個xib中。 例如,只需將其全部放在MainWindow.xib中即可。

這可以通過在OtherViewController中向MyViewController添加引用來以編程方式完成。 這可能有點亂,並且在某種程度上導致我問你為什么要這樣做但是......我相信你知道你在做什么。

警告。 因為“其他”將包含對“我的”的引用,您將希望保留我的內部其他。 但不要,我再說不要在'我'中保留'其他'這種循環會導致錯誤。

祝你好運,別忘了投票

ps如果你有更多的細節,我可以幫助你找出更好的設計,以便可以避免這種事情:)

暫無
暫無

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

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