Раскадровка инициализации UIView вместо моего пользовательского класса - PullRequest
0 голосов
/ 06 июня 2018

У меня есть пользовательский класс с именем NumberView, который подклассы UIScrollView.Я положил UIView на свою раскадровку и изменил класс на NumberView:

Screenshot of storyboard

Затем я создал розетку для своего 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

Но когда я пытаюсь позвонить [self.numberView setTotalBtns:3]; из моего ShotTraceViewController.Я получаю исключение:

- [UIView setTotalBtns:]: нераспознанный селектор отправлен в экземпляр 0x104fad3e0

Ух ты!Это не правильно, это должно быть NumberView, а не UIView!Я что-то не так делаю?

Я также заметил, что initWithFrame и initWithCoder не вызываются.

1 Ответ

0 голосов
/ 12 июня 2018

Я не знаю, почему это сработало, но снятие отметки с кнопки Inherit Module from Target под выбором класса исправило все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...