从XIB中的XIB文件加载自定义UIView以用于ViewController视图

时间:2012-04-28 01:39:35

标签: iphone ios uiview interface-builder xib

我有WizardSequenceViewController IBOutlet WizardView *_wizardView。在许多WizardSequenceViewController.xib文件中,我将view插座连接到文件所有者 - WizardSequenceViewController。我有一个使用class属性设置为WizardView定义的视图的子视图。我已将WizardView连接到文件所有者的插座。最后,在我的WizardView.xib中,我有一个UILabel我已放入文件中以测试是否正在呈现视图。当我从标签栏中选择WizardSequenceViewController时,会看到超级视图view,但不会看到子视图_wizardView。当我在我的-(id)initWithCoder文件中的WizardView.m方法中设置断点时,我看到它停在那里,所以我知道它正在调用初始化程序(因此使用加载该文件的xib)。我已经尝试了很多迭代和变化来使这个东西工作,但我不能,我会发疯。有没有人有任何想法?

2 个答案:

答案 0 :(得分:0)

来自Apple doc“View Controller Basics,About Custom View Controllers”:

  

视图控制器与视图层次结构中视图之间的一对一对应关系是关键设计考虑因素。您不应使用多个自定义视图控制器来管理同一视图层次结构的不同部分。同样,您不应使用单个自定义视图控制器对象来管理多个屏幕内容。

     

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

也许您无法在视图控制器中进行视图和子视图插座设置。我不确定将子视图出口分配给单独的NSObject子类也可以,因为你会如何呈现它?你能用编程方式编写子视图,使用initWithFrame和addSubview,而不是将它作为插座吗?或者,如果您真的想以图形方式进行设置,是否可以将其作为所有者分配给单独的视图控制器?然后顶视图控制器将在子视图控制器上调用presentModal。或者,如果您只需要UILabel作为子视图,只需将标签添加到主视图中即可?

答案 1 :(得分:0)

即使我遇到类似的问题。但是通过以下链接中给出的步骤解决了它。希望能帮助到你。  http://blog.yangmeyer.de/blog/2012/07/09/an-update-on-nested-nib-loading