В IB я создал UIView внутри UIScrollView. Владельцем файла для обоих является UIViewController с именем JLViewController. UIView подключен к классу BodyClock.
Класс BodyClock рисует график внутри представления. Это также создает несколько небольших представлений, которые действуют как горячие точки касания. При прикосновении к горячей точке отображается информационное предупреждение с кнопкой для более подробной информации. Мне нужно сказать JLViewController для отображения подробной информации. Я думал, что смогу сделать это, сделав ViewController делегатом HotSpot. Так как я создаю горячие точки в классе BodyClock, я не могу понять, как установить делегат горячей точки в JLViewController. Я пытаюсь сделать что-то вроде этого ..
//Code in BodyClock
//create the hot spot
id viewController = [self nextResponder];
HelpHotSpot *helpHotSpot = [[HelpHotSpot alloc] initWithFrame:CGRectMake(start_x, melatoninHeightEnd_y, 80, 40)];
helpHotSpot.delegate = viewController;
[viewController addSubview:helpHotSpot];
[helpHotSpot release];
//Code in the HotSpot after touch and request for more info
//notify JLViewController to display the details
if ([self.delegate respondsToSelector:@selector(hotSpotMore:)]) {
[self.delegate hotSpotMore:itemDetails];
}
Все работает за исключением того, что отклика ToSelector не удается. Если я NSLog viewController или self.delegate я получаю ...
UIScrollView: 0x7443c20; рамка и т. д.
Я ожидал JLViewController: вместо UIScrollView: так что я думаю, что это проблема.
Как мне установить делегата для ViewController для этих подпредставлений?
Возможно ли, или я должен вместо этого использовать уведомление?