0

UITableViewControllerを継承するOptionsTableViewControllerというクラスがありました。tableViewを特定の位置に配置する必要があるため、スーパークラスをUITableViewDelegateプロトコルとUITableViewDataSourceプロトコルを実装するUIViewControllerに変更しました。

現在、一部のテーブルセルにはaccessoryViewとしてUISwitchがあります。スイッチはインスタンス変数であり、CGRectZeroで初期化されます。

スーパークラスをUIViewControllerに変更すると、スイッチは表示されません。しかし、クラスの名前も(OptionsViewController feに)変更すると、機能します。

この奇妙な行動がどこから来ているのか誰か知っていますか?また、プロジェクトをクリーンアップしようとし、ビルドフォルダーも削除しましたが、解決策はクラスの名前を変更することだけのようです。

以前にも同様の問題があり、クラスの名前を変更しないとテーブルビュー全体が表示されませんでした。

4

2 に答える 2

0

OptionsTableViewControllerとOptionsViewControllerという名前が、Interface Builderのnibファイルを含め、プロジェクト全体の他の場所で使用されているかどうかを確認しましたか?必要に応じて、すべての名前を変更しましたか?

于 2010-08-28T21:26:01.957 に答える
0

この問題の理由を見つけました。プロジェクトXCodeを検索しても、OptionsTableViewControllerという名前のファイルは見つかりませんでしたが、[ターゲット]->[AppName]に含まれていることがわかりました。すべてのターゲットをクリーンアップしてもファイルは消えないので、そこにまだパーツが残っていることを知っておくとよいでしょう。

于 2010-10-02T23:20:55.743 に答える