正如标题所述,UIButtons的IBOutletCollection在viewDidLoad后为空。 我以同样的方式创建了UILabels的IBOutletCollection,并且这个工作正常。 任何想法如何解决这个问题,或者我犯了一个错误?UButtons的IBOutletCollection在viewDidLoad后为空
这里是代码:
@property (strong, nonatomic) IBOutletCollection(UILabel) NSArray *lbl_save;
@property (strong, nonatomic) IBOutletCollection(UILabel) NSArray *lbl_cancel;
@property (strong, nonatomic) IBOutletCollection(UILabel) NSArray *lbl_edit;
@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *btn_changeData;
@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *btn_save;
@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *btn_cancel;
的按钮被放置在一个XIB和正确地连接到相应的出口。就像标签一样。
我按下其中一个按钮的时间是第一次,我想访问代码中的按钮。
for (UIButton *btn in _btn_changeData) {
btn.hidden = NO;
btn.userInteractionEnabled = YES;
}
for (UIButton *btn in _btn_save) {
btn.hidden = YES;
btn.userInteractionEnabled = NO;
}
for (UIButton *btn in _btn_cancel) {
btn.hidden = YES;
btn.userInteractionEnabled = NO;
}
for (UILabel *lbl in _lbl_save) {
lbl.hidden = YES;
}
for (UILabel *lbl in _lbl_cancel) {
lbl.hidden = YES;
}
for (UILabel *lbl in _lbl_edit) {
lbl.hidden = NO;
}
这也是我得到以下异常并意识到,我的Button OUtletcollection是空的。
- [的UIButton countByEnumeratingWithState:对象:计数:]:无法识别的选择发送到实例0xa8a8850
我既不覆盖outletcollection,也不我改变按钮的属性。 它只是标签在集合和按钮没有。我不知道为什么。
Thx提前寻求帮助。
Mav
由于我使用最新的sdk xcode 4.6,我根本没有任何Synthesize。编译器会自动为我执行此操作。 你的想法听起来都不错,但令我困惑的是,标签outletcollections工作正常,而按钮却没有。 正如你可以在下面的图片中看到的例外调试器可以访问ivar _btn_changeData,它不是零。因此它得到正确的初始化,但它没有充满按钮。 – Maverick1st 2013-04-06 10:58:00
@ Maverick1st更新了答案。请注意,调试器与普通代码有点不同。当它说里面有'NSArray'时,'NSArray'可能是从伊娃尔声明中提取的,而不是来自实际的数据。 – Sulthan 2013-04-06 11:02:31
thx。我会检查这个。 – Maverick1st 2013-04-06 11:04:48