【发布时间】:2018-11-16 13:05:51
【问题描述】:
我有一个名为NumberView 的自定义类,它是UIScrollView 的子类。我将UIView 放到我的故事板上,并将类更改为NumberView:
然后我为我的ShotTraceViewController 班级创建了一个出口:
@interface ShotTraceViewController ()
@property (weak, nonatomic) IBOutlet NumberView *numberView;
@end
我在NumberView.h 和NumberView.m 中定义了一些方法:
.h:
@interface NumberView : UIScrollView
@property (weak, nonatomic) id<NumberViewDelegate> number_delegate;
-(void)setTotalBtns:(int)total;
...
@end
.m:
@interface NumberView ()
@end
@implementation NumberView {
}
-(instancetype)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
return self;
}
-(instancetype)initWithCoder:(NSCoder *)aDecoder{
self = [super initWithCoder:aDecoder];
return self;
}
-(void)setTotalBtns:(int)total {
NSLog(@"Setting buttons");
}
@end
但是当我尝试从我的ShotTraceViewController 拨打[self.numberView setTotalBtns:3]; 时。我得到一个例外:
-[UIView setTotalBtns:]:无法识别的选择器发送到实例 0x104fad3e0
哇!不对,应该是NumberView 而不是UIView!我做错了吗?
我还注意到 initWithFrame 和 initWithCoder 都没有被调用。
【问题讨论】:
-
在您从 Storyboard 初始化时,不应调用
initWithFrame:,但可能会调用initWithCoder:。可以发一下你的截图吗?错误似乎并没有表明您将其类正确地放入视图中。 -
已更新。抱歉,不知何故我的屏幕截图被分离了。
-
“但是当我尝试从我的 ShotTraceViewController 调用 [self.numberView setTotalBtns:3];”时,请在实际上下文中展示您是如何做到的。也请届时登录
self.numberView,以便我们进一步了解它是什么。
标签: ios objective-c uiview uistoryboard