- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:iPhoneアプリの開発についてです。)
iPhoneアプリの開発:UITableViewControllerをaddsubviewで利用する際の問題と解決方法
このQ&Aのポイント
- UITableViewControllerをaddsubviewするとセルが消えてしまう問題が発生します。
- addsubviewしたコントローラー上でアラートを表示するとエラーが発生します。
- 問題の解決方法として、セルの消える問題に関してはテーブルビューのリロードを行うことで解決できます。また、アラートの表示に関してはaddsubviewしたコントローラーのviewに対してアラートを表示する必要があります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> セルのラベルに文字列もでるんですがテーブルビューを動かす途端セルが消えてしまいます。 生成したAddTableViewControllerをどこかに保持していますか? addViewというローカル変数に入れただけだと、 そのメソッドが終了した時点でAddTableViewControllerを 保持している変数がなくなるので自動的にAddTableViewController のインスタンスは削除されてしまいます。 (tableViewはaddSubviewされているので、その部分だけ残ります) おそらく、addSubview直後の時点ではAddTableViewController が存在しているため、正しくテーブル表示されますが、 その後すぐにAddTableViewControllerが削除されてしまうため、 後でテーブルスクロールさせたりする時に再表示する処理がなくて セルの内容表示が消えてしまうのではないかと思います。 RootDirViewControllerかAppDelegateのプロパティで AddTableViewControllerを保持しておけばよいと思います。 > addView上でアラートを表示しようとするとエラーになるのはなぜなんでしょうか? こちらは意味がよくわかりませんでしたが、 addViewのインスタンスがすぐに削除されているなら、そのあたりの影響の 可能性があると思います。 AddTableViewControllerの保持が問題なくても解決しないようなら、 もっと具体的にどのようなコーディングをしてどのような操作をすると どのようなエラーメッセージが出たのかを補足してください。
お礼
おっしゃる通り、インスタンスのタイミングが原因でした。 ありがとうございました。