这是我做的:
1)创建新的UIViewController子类,使用NIB勾选界面构建器
2)在 Headers 中:
@interface QuizMainViewController : UIViewController
{
UILabel* aLabel;
}
@property (nonatomic, retain) IBOutlet UILabel* aLabel;
@end
3)在.m
#import "QuizMainViewController.h"
@implementation QuizMainViewController
@synthesize aLabel;
- (void)dealloc
{
[aLabel release];
[super dealloc];
}
@end
4)打开NIB In界面构建器,将新的UILabel拖到视图中 .
我在这里测试程序,运行正常 .
5)右键单击文件的所有者,将“aLabel”从Outlets连接到UILabel .
我在这里跑,它崩溃了 . 来自日志的消息:
***由于未捕获的异常'NSUnknownKeyException'终止应用程序,原因:'[setValue:forUndefinedKey:]:此类不是密钥值,符合密钥aLabel .
2 回答
我已经解决了这个问题!
视图是从标签栏控制器加载的,我已将nib名称设置为“QuizMainViewController”但我没有将视图的Class标识设置为“QuizMainViewController”它被卡在默认值“UIViewController” .
加载视图时,它认为它是UIViewController的一个实例,因此它不知道aLabel属性 .
故事的道德:当使用标签栏控制器时,为具有自己的视图控制器的笔尖设置笔尖名称和类标识 .
尝试:
据说,您不再需要在Objective-C 2.0中执行此操作,但我在iPhone上遇到问题而将其排除在外 .
编辑:
你可以尝试改变
至
不要认为那应该是重要的 . 编译器通常可以解决这个问题 .
Edit01:
在IB中,确保视图控制器的类设置为
QuizManViewController
而不仅仅是UIView
.