[英]How do you reload UIViewController's view from a XIB after a memory warning blows it away?
[英]How to embed a UIViewController's view from one xib inside a view in another xib?
MyViewController.xib將File的Owner類設置為MyViewController
( UIViewController
的子類),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.