我打开一个新的问题随动我的最后一个(superview and parentviewcontroller nil after adding a subview)使用相关联的视图类创建一个笔尖。基本上我知道使用子视图是一个好主意,但我不应该有一个ViewController控制另一个ViewController中的子视图。基本上我想要做以下... 我有两个ViewController共享一个公共子视图。我已经创建了该子视图作为一个叫做SearchDate.xib的nib。文件所有者是相应的类SearchDateView.m/h。该类有一个UIBiew内的唯一元素的出口,它是一个标签。 SearchDateView类还有一个用于更改SearchDateView.xib中标签值的函数。我想让我的两个ViewController加载这个笔尖,但显然我不知道如何正确加载笔尖。无论我做什么,最多都不显示,最坏的情况是抛出异常。苹果文档谈论的是将IB中的其他类实例拖入主视图,但似乎没有解决问题。我在我的ViewController一个SearchDateView出口,我尝试在控制器的负载视图这样做:我如何与可以由多个ViewControllers
searchDateView = [[[NSBundle mainBundle] loadNibNamed:@"SearchDateView" owner:self options:nil] objectAtIndex:0];
[[self view] addSubview:searchDateView];
但我得到这个异常:
*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<MainViewController 0x431fac0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key searchDateLabel.'
我知道我在做一些完全错误的,但什么是否有正确的方法来创建一个nib,关联视图类来更新该nib中的一些对象,并在不同的控制器中重用该nib?
编辑:鉴于评论或许这还不够清楚。我不想在整个视图中使用相同的nib文件 - 而是使用子视图。因此,举例来说,控制器A有一个映射和一个SearchDateView,而控制器B有一个表视图和一个SearchDateView。所以我不知道如何加载一个子视图到多个控制器...
对不起,也许我不太清楚。我不想在整个视图中使用相同的nib文件 - 而是使用子视图。因此,举例来说,控制器A有一个映射和一个SearchDateView,而控制器B有一个表视图和一个SearchDateView。所以我想知道如何将子视图加载到多个控制器中。 – deadroxy 2010-01-14 18:50:18
我更新了我的答案,以便更具体地了解您的情况。 – Nimrod 2010-01-15 03:14:11
是的,超类似乎是我的问题唯一的“真正”解决方案。我可能会稍后重构,但现在我已经找到了一些解决方法 - 谢谢! – deadroxy 2010-01-17 16:44:44