Я хотел бы создать UITableViewController в другом контроллере, а также передать ему метод с этого контроллера. Я уже читал, что это может быть достигнуто с помощью @selector. Теперь я попытался следующие:Выполнение селектора в другом классе
TimeController.m
- (void)choseTime{
SelectOptionController *selectController = [[SelectOptionController alloc] initWithArray:[Time SQPFetchAll] andSelector:@selector(timeSelected)];
[self.navigationController pushViewController:selectController animated:true];
}
- (void) timeSelected{
NSLog(@"Time selected!");
}
SelectOptionController.h
@interface SelectOptionController : UITableViewController
@property (nonatomic, strong) NSMutableArray *dataset;
@property (nonatomic) SEL selectedMethod;
-(id)initWithArray: (NSMutableArray *) myArray andSelector: (SEL) selectedMethod;
SelectOptionController.m
- (id)initWithArray: (NSMutableArray *) myArray andSelector: (SEL) selectedMethod{
self = [super initWithStyle:UITableViewStyleGrouped];
if(self) {
self.dataset = myArray;
self.selectedMethod = selectedMethod;
}
return self;
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
[self performSelector:self.selectedMethod];
[self.navigationController popViewControllerAnimated:true];
}
Однако, когда получает выделена ячейка, следующая исключение:
-[SelectOptionController timeSelected]: unrecognized selector sent to instance 0x1450f140
Что я здесь делаю неправильно? Любая помощь будет высоко оценен.
Вопросы, требующие помощи по отладке («почему этот код не работает?») Должны включать в себя желаемое поведение, конкретную проблему или ошибку и кратчайший код, необходимый для воспроизведения в самом вопросе. –