tableView:cellForRowAtIndexPath: UITableViewController サブクラスの実装では、次のコード スニペットを使用しています。
AlarmPicker *alarmPicker = [[AlarmPicker alloc] init];
alarmPicker.scrollViewDelegate = alarmPicker;
[cell.contentView addSubview:alarmPicker.view];
AlarmPickerは、さまざまなUIScrollViewDelegateメソッドを実装しています。
AlarmPicker.hでは、次のようにscrollViewDelegateを宣言しています。
@property (assign) id<UIScrollViewDelegate> scrollViewDelegate;
これは、 AlarmPickerの実装部分で使用されています。
UIScrollView *returnScrollView = [[UIScrollView alloc] init];
...
returnScrollView.delegate = self.scrollViewDelegate;
残念ながら、このAlarmPickerインスタンスではscrollViewDelegateは常に null であるため、実装されたデリゲート メソッドはまったく呼び出されません。
回避策は、割り当てと初期化を行うクラスにUIScrollViewDelegateメソッドの実装を配置することです。
...
alarmPicker.scrollViewDelegate = self;
...
しかし、それは非常に悪い解決策になります。
AlarmPickerインスタンスに、自身をデリゲートとして使用するように指示するにはどうすればよいですか?