【发布时间】:2015-09-29 15:13:22
【问题描述】:
我有一个视图控制器 CaptureDataVC 和一个自定义视图 KeyboardView。
KeyboardView 具有根据需要工作所需的所有初始化函数:-(id)initWithCoder:(NSCoder *)aDecoder 和 -(id)initWithFrame:(CGRect)frame
在 CaptureDataVC 的 xib 文件中,我有一个带有自定义类 KeyboardView 的 UIView。
视图渲染得很好。问题是我无法调用KeyboardView 中的任何方法(它可以编译,我没有收到任何错误,但没有调用这些方法)。
所以基本上我不能这样做:
CaptureDataVC.h
@property (nonatomic,retain) IBOutlet KeyboardView *keyboardView;
CaptureDataVC.m
[self.keyboardView foo];
KeyboardView.m
-(void) foo {
NSLog(@"Hello World!"); //Won't print anyting
}
有什么想法吗?
编辑:
自定义类设置为蓝色视图
【问题讨论】:
-
当您的
KeyboardView被选中并且 Identity Inspector 处于打开状态时,您能否发布 xib 文件的屏幕截图?班级是否说KeyboardView? -
@HAS 如您所见...
-
我们用 strong 来表示“嘿,当我还活着的时候会发生什么”,而用 weak 来表示“嘿,当你还活着的时候,我会抓住你,但如果你死得很好,那没关系,我''ll let you go"。因此,当视图处于活动状态时,您的键盘视图处于活动状态。
-
IBOutlet 的keyboardView 是
nil吗?尽管这里提到了其他一切,但它仍然可能是。对于上述 cmets,您应该使用弱(而不是隐含的强),因为视图由其父视图保留。视图通过视图层次结构拥有,而不是由它们的控制器拥有。 -
您是否添加了任何断点来遵循代码流?这就是
keyboardView在任何时候是否为nil。
标签: ios objective-c