【发布时间】:2012-08-23 07:28:43
【问题描述】:
我找到了this link,它提供了从查找器打开我的项目的解决方案。没有运气。
我知道我的代码应该可以工作,因为我有一堆 UITextfields,其中大约一半可以工作,而其中一半没有几乎相同的代码。我怀疑我只是有太多的 IBOutlets 和 Interface Builder 就不会再向我展示了,因为我有这么多。 (有 13 个标签和 12 个文本字段已经完全可用,并且正在尝试再添加 12 个文本字段)。
Interface Builder 是否有某种#-of-outlet 限制,这是 XCode 错误,还是 Interface Builder 中的设置我可能不小心更改了导致这种行为??
编辑: 我的 .h 文件 - 我为它的可怕之处道歉。
#import <UIKit/UIKit.h>
#import "MatchSheet.h"
#import "Match.h"
@interface Individual : UIViewController<UIScrollViewDelegate>{
IBOutlet UIScrollView *scroller;
UILabel *label333Team1, *label333Team2, *label363Team1, *label363Team2, *labelCycleTeam1, *labelCycleTeam2;
UILabel *label333Stacker1a, *label333Stacker1b, *label333Stacker2a, *label333Stacker2b, *label363Stacker1a, *label363Stacker1b, *label363Stacker2a, *labet363Stacker2b, *labelCycleStacker1a, *labelCycleStacker1b, *labelCycleStacker2a, *labelCycleStacker2b;
// 333 Attempts
UITextField *field333attempt1a1, *field333attempt1a2, *field333attempt1a3, *field333attempt1b1, *field333attempt1b2, *field333attempt1b3;
UITextField *field333attempt2a1, *field333attempt2a2, *field333attempt2a3, *field333attempt2b1, *field333attempt2b2, *field333attempt2b3;
// 363 Attempts
UITextField *field363attempt1a1, *field363attempt1a2, *field363attempt1a3, *field363attempt1b1, *field363attempt1b2, *field363attempt1b3;
UITextField *field363attempt2a1, *field363attempt2a2, *field363attempt2a3, *field363attempt2b1, *field363attempt2b2, *field363attempt2b3;
// Cycle Attempts
UITextField *fieldCycleattempt1a1, *fieldCycleattempt1a2, *fieldCycleattempt1a3, *fieldCycleattempt1b1, *fieldCycleattempt1b2, *fieldCycleattempt1b3;
UITextField *fieldCycleattempt2a1, *fieldCycleattempt2a2, *fieldCycleattempt2a3, *fieldCycleattempt2b1, *fieldCycleattempt2b2, *fieldCycleattempt2b3;
}
// Teams //
@property (nonatomic, strong) IBOutlet UILabel *label333Team1, *label333Team2;
@property (nonatomic, strong) IBOutlet UILabel *label363Team1, *label363Team2;
@property (nonatomic, strong) IBOutlet UILabel *labelCycleTeam1, *labelCycleTeam2;
// Stackers //
@property (strong, nonatomic) IBOutlet UILabel *label333Stacker1a, *label333Stacker1b, *label333Stacker2a, *label333Stacker2b;
@property (strong, nonatomic) IBOutlet UILabel *label363Stacker1a, *label363Stacker1b, *label363Stacker2a, *label363Stacker2b;
@property (strong, nonatomic) IBOutlet UILabel *labelCycleStacker1a, *labelCycleStacker1b, *labelCycleStacker2a, *labelCycleStacker2b;
// Attempts //
// 333
@property (strong, nonatomic) IBOutlet UITextField *field333attempt1a1, *field333attempt1a2, *field333attempt1a3, *field333attempt1b1, *field333attempt1b2, *field333attempt1b3;
@property (strong, nonatomic) UITextField *field333attempt2a1, *field333attempt2a2, *field333attempt2a3, *field333attempt2b1, *field333attempt2b2, *field333attempt2b3;
// 363
@property (strong, nonatomic) IBOutlet UITextField *field363attempt1a1, *field363attempt1a2, *field363attempt1a3, *field363attempt1b1, *field363attempt1b2, *field363attempt1b3;
@property (strong, nonatomic) UITextField *field363attempt2a1, *field363attempt2a2, *field363attempt2a3, *field363attempt2b1, *field363attempt2b2, *field363attempt2b3;
// Cycle
@property (strong, nonatomic) IBOutlet UITextField *fieldCycleattempt1a1, *fieldCycleattempt1a2, *fieldCycleattempt1a3, *fieldCycleattempt1b1, *fieldCycleattempt1b2, *fieldCycleattempt1b3;
@property (strong, nonatomic) UITextField *fieldCycleattempt2a1, *fieldCycleattempt2a2, *fieldCycleattempt2a3, *fieldCycleattempt2b1, *fieldCycleattempt2b2, *fieldCycleattempt2b3;
-(IBAction)switchview:(id)sender;
@end
【问题讨论】:
-
请分享您声明 IBOutletS 的 .h 代码
-
不,据我所知,Interface Builder 对插座没有限制。请发布您的头文件的一些代码和文本字段的实现。
-
IB没有这样的限制。当然不会那么低。顺便说一句,您是否考虑过在代码中创建 GUI?在 IB 中创建 20 多个控件似乎有点复杂。
-
我会在几分钟后发布一些代码。我很想用代码来做这一切,但我有一个截止日期,我已经按照它的方式完成了。以后可能会改。 :)
-
我只是将您发布的内容复制为代码,所有网点都出现了。如果您只是发布 .h 文件的顶部以及所有的 outlet、ivars 和属性,我们可以看看它。我想你可能有数百个甚至数千个网点(但加载时间会很慢)。
标签: ios xcode interface-builder