如何从另一个xib视图中的一个xibembeddedUIViewController的视图?

MyViewController.xib将File的Owner类设置为MyViewControllerUIViewController一个子类),将File的Owner视图连接到包含一些子视图的UIView

OtherViewController.xib具有文件的所有者类设置为UIViewController和文件的所有者视图连接到一个空的UIView

是否可以在Interface Builder中将MyViewController的视图embedded到OtherViewController.xib视图中?

我试图将MyViewController一个实例添加到OtherViewController.xib,但我不能把它放在视图(因为它不是一个UIView ),我无法进入MyViewController中与MyViewController关联的视图(只有视图控制器本身,并没有连接到,使其到OtherViewController.xib)。

你可能不想这样做。 遵循“视图控制器编程指南”中的警告:

注意:如果要将视图层次划分为多个子区域,并分别pipe理每个子区域,请使用通用控制器对象(从NSObject降序的自定义对象)而不是视图控制器对象来pipe理每个子区域。 然后使用单个视图控制器对象来pipe理通用控制器对象。

视图不填充窗口的UIViewController子类将不会像您所期望的那样运行。 它将不会收到视图控制器生命周期消息,旋转消息或正确设置parentView/navigation/tabBarController属性。

UITableViewCell不应该是UIViewController的视图。 它可能有一些控制器对象负责pipe理其行为(虽然我怀疑这种行为可能都包含在单元格视图本身),但该控制器不应该从UIViewControllerinheritance。

这已经发生了一些其他的答案已经发布 – 你想看看UIViewController的最新文档,特别是指南“从其他视图控制器呈现视图控制器”和类参考指南 “实施容器视图控制器”。 此外,还有来自WWDC 2012的video,涵盖iTunes上的主题: Session 236 – iOS上视图控制器的演变 。 (video非常有用,这不仅仅是一个总体的概述。)

你可以把它放在一个xib中。 例如,把它放在你的MainWindow.xib中。

这可以通过在MyViewController中添加一个在OtherViewController中的引用来以编程方式完成。 这可能有点混乱,并在某种程度上导致我问为什么你想这样做,但是…我会相信你知道你在做什么。

警告。 因为“其他”将包含对“我的”的引用,所以您将要保留我的“其他”。 但是不要,我再重复一次,不要在“我的”里面保留“其他”这种循环会导致错误。

祝你好运,不要忘记投票

ps如果你有更多的细节我可以帮你理清一个更好的devise,这样可以避免这样的事情:)