iOS 7 以降、VoiceOver がオンになっていると問題が発生します。UITableViewHeaderFooterView内部で子クラスのインスタンスを登録しましたviewDidLoadが、それをデキューすると、-[tableView dequeueReusableHeaderFooterViewWithIdentifier:]常にnilオブジェクトが返されます。
この問題は iOS 7.0 で発生し始めました。以前のバージョンにはありませんでしたが、VoiceOver なしで 6.0 と 7.0 の両方で完全に動作する場合、問題なく動作します。
代わりにカスタム ヘッダーを使用することも、dequeueReusableHeaderFooterViewWithIdentifier:nil を返すときに新しいオブジェクトをインスタンス化することもできませんでした。しかし、これに関して既知の問題があるかどうか疑問に思っていました。
乾杯、