推送UIViewController不适用于连接

时间:2010-06-04 21:07:31

标签: iphone

好吧,在我的rootViewController中,我能够将我自己定义的另一个viewController推送到屏幕上。但是,当我在viewController和它自己的.h文件之间建立任何连接时,程序只是挂起并崩溃,给我这个错误:

2010-06-04 15:36:13.944 pooldocfinal [11971:20b] ***由于未捕获的异常'NSUnknownKeyException'终止应用程序,原因:'[setValue:forUndefinedKey:]:此类不是键值编码 - 符合关键标签1。'

当我除了那个UILabel之外没有连接任何东西时会发生这种情况。这是我用来声明/推送视图的代码(名为balanceViewController):

    - (IBAction) pushedBalanceButton
{
    balanceViewController *controller = [[balanceViewController alloc] initWithNibName:@"balanceViewController" bundle:nil];
    [self.navigationController pushViewController:controller animated:YES];
    [controller release];
}

这是我推动的视图的.h文件,它只有一件事:

#import <UIKit/UIKit.h>


@interface balanceViewController : UIViewController {

    IBOutlet UILabel *label1;

}
@end

就像我说的,除非我在Interface Builder中实际建立了在balanceViewController.xib和balanceViewController.h中的任何东西之间的连接(在这种情况下,它是一个UILabel对象),一切正常。

2 个答案:

答案 0 :(得分:1)

你应该分配一个balanceViewController,而不是一个UIViewController。

答案 1 :(得分:0)

我相信如果你有一个IBOutlet,你需要定义getter / setter。这就是Key Value编码兼容的含义。您可以通过@property语句和@synthesize语句执行此操作,或者如果您愿意,可以手动执行此操作。

@interface balanceViewController : UIViewController {

    IBOutlet UILabel *label1;

}

@property (nonatomic, retain) IBOutlet UILabel *label1;

@end

然后添加

@synthesize label1;

到您的实施

编辑 - PS,不要忘记你的dealloc方法中的[label1 release]