我正在尝试加载视图控制器笔尖,其文件的所有者是基于Swift的UIViewController类。此时,视图控制器非常简单-只需一个标签(lblResult),其内容即可在运行时设置。加载视图控制器时,出现以下错误:

this class is not key value coding-compliant for the key lblResult

我知道这通常是因为没有在Interface Builder中设置文件的所有者,但是,在我的情况下,它是已设置的。我已经验证lblResult的IBOUtlet设置正确,并且view属性也正确设置。唯一真正的区别是,我试图在用Objective-C编写的应用程序中加载基于swift的视图控制器。

在我的视图控制器类中,我将UILabel属性设置如下:
@IBOutlet weak var lblResult: UILabel!

并将其值设置如下:
lblResult.text = "Time \(hour):\(minute):\(second)"

在我的Obj-C调用类中,我将实例化视图控制器,如下所示:
viewController = [[UIViewController alloc] initWithNibName:@"SwfViewController" bundle:nil];

当未设置插座时,笔尖加载到视图中,但是当有IBOutlets时,出现错误。关于为什么发生这种情况的任何线索?谢谢!

最佳答案

如果笔尖是View,而所有者是View Controller,请确保将视图控制器的view属性连接到笔尖视图。如果您的笔尖是视图控制器,则无需设置文件所有者,而只需将视图控制器的Custom Class设置为SwfViewController。

10-07 19:54