【发布时间】:2013-02-16 15:29:21
【问题描述】:
我的 iOS 应用有一个根视图控制器,我想在运行时向它添加一些自定义 UIView。我称这些自定义视图小部件是因为它们很小并且除了大小、标签文本等基本相同。
我为我的小部件创建了 .h 和 .m 以及 .xib 文件。在我的根视图控制器viewDidLoad 我这样做:
TestMyView *cell = [[[NSBundle mainBundle] loadNibNamed:@"TestMyView" owner:self options:nil] objectAtIndex:0];
[self.view addSubview: cell];
它工作正常。但是,我还是想不通:
- 如果我将
UILabelmylabel 作为 IBOutlet 添加到我的自定义 UIView 类 .h 文件中,为什么会出现异常"[<TestViewController 0x7517210> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key mylabel"。 (我将 UILabel 拖放到 IB 中,然后控制拖动到 .h)创建视图时我需要更改标签文本。而且我不太明白为什么它抱怨 TestViewController 而我没有向它添加 IBOutlet,而是我的自定义视图 .h 类? - 那我该如何以正确的方式更改标签文本。我不想为我的小部件创建视图控制器,因为我认为没有必要。我需要创建 5-6 个小部件,所以我需要为它们创建 5-6 个视图控制器?
- 当我创建小部件时似乎没有调用 initWithCoder?我看到苹果文档库说如果从 nib 文件加载视图,这个方法会被调用。
如果您认为我解释这一点很烂,这是我的项目代码: https://dl.dropbox.com/u/43017476/custom.tar.gz
【问题讨论】:
标签: iphone ios objective-c xcode uiview