В IB я создал UIView внутри UIScrollView. Владелец файла для обоих - это UIViewController с именем JLViewController. UIView подключен к классу BodyClock.Как установить делегата subview в контроллер супервизоров
Класс 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];
}
Все работает, за исключением того, что отвечаетSoSlector не работает. Если я NSLog viewController или self.delegate я получаю ...
UIScrollView: 0x7443c20; рама и т. д.
Я ожидал, что JLViewController: вместо UIScrollView: так что я думаю, что это проблема.
Как установить делегат на ViewController для этих подвидов?
Возможно ли, или я должен использовать уведомление вместо этого?
Я все еще заинтересован в том, как это сделать, но уже решил проблему с помощью NSNotificationCenter. Очень прост в применении и отлично работает. – user278859