Xcodeを用いてObjectiveCでiPhoneアプリの開発の勉強をしています。
TableViewControllerにて、ボタンを押した時にセルを追加する処理を組みたいのですが、うまくいきません。
NavigationBarに設置したボタンを押した時に、セルに表示するデータを追加する事は出来ているのですが
ボタンのactionメソッドの処理の最後に
[self.tableView reloadData];
と記述しているにも関わらず、テーブルの表示が更新されず、追加したデータが表示されません。
一度Viewを移動し再度そのテーブルを表示すると、追加したデータがテーブルに表示されます。
[self.tableView reloadData];の直下に置いたNSLogは表示されるので、どこかでプログラムが止まっているという訳でも無さそうです。
ボタンを押したらすぐにデータが追加され、テーブルに表示されるようにしたいです。
他に何かテーブルを更新する方法があるのでしょうか?
No.4ベストアンサー
- 回答日時:
それで、セルを追加するボタンに実装したメソッドは、どれですか?そして、そのメソッドには、NSMutableArray「tagLis
t」に、新規要素をinsertする実装はしてありますか?この回答への補足
回答ありがとうございます!
セルを追加するボタンに実装したメソッドはIBActionのtagCreateメソッドです。
allAllALLメソッドが、NSMutableArray「tagList」に、新規要素をinsertする実装となっております。
[self.tableView reloadData];でテーブルのビューが更新されるとの事で、
viewWillAppearが読み込まれるものだと思っていたのですが、そうでは無かったようですね。
そうなると、[self.tableView reloadData];というのが、どういう処理をしているのかイマイチ分かりません。 更新といっても何を更新しているのか・・・
これに関しては新しく質問を建てようと思いますが、
質問の問題に関しては、tagCreateメソッドの最後にallAllALLメソッドの処理を組み込む事で、ボタンを押すと同時に新しい項目が表示させる事ができました!
感謝です!
回答ありがとうございます。
返事遅くなって申し訳ありません><
多忙でプログラムを触る時間がありませんでした。
これから見返し明日までに補足しますので、もし良かったら引き続きよろしくお願いしますm()m
No.3
- 回答日時:
他に方法もありますがUITableViewのreloadDataでも行追加の表示更新は出来ます。
出来ないのであれば
・UITableViewのUITableViewDataSource実装内の、tableView:numberOfRowsInSection:およびtableView:cellForRowAtIndexPath:に追加したデータが反映されていない
・reloadDataをメインスレッドで行っていない
などの原因が考えられます。
この回答への補足
>・UITableViewのUITableViewDataSource実装内の、tableView:numberOfRowsInSection:およびtableView:cellForRowAtIndexPath:に追加したデータが反映されていない
おそらくこれが原因と思われます。
[self.tableView reloadData];をすれば、これらのメソッドを再度読み込んでテーブルのビューを更新するのかと思っていましたが、違うのでしょうか・・・
これらのメソッドをボタンをタップした時のActionメソッドに組み込む方法はあるのでしょうか?
でも、あまりこのメソッドを繰り返し使うと、テーブルの表示がどんどん重なってメモリ不足の原因になりそうな気もします。
No.2
- 回答日時:
No.1の追加です。
ためしに、reloadDataメソッドを使ってみましたが、ただアニメーション効果がないだけで、テーブルの行追加が反映されて表示されました。
これ以上は、あなたが書いたじっさいのプログラムコードを見せていただかないと、なんとも回答はできないでしょう。
この回答への補足
■tagSelectViewController.h
#import <UIKit/UIKit.h>
@interface tagSelectViewController : UIViewController{
NSMutableArray *tagList;
}
@end
■tagSelectViewController.m
http://www.dotup.org/uploda/www.dotup.org5336095 …
FMDBを使っているので、少し分かりづらいかもしれません。すみません。
FMDBからデータを読みとり、そのデータをテーブルに表示し、
追加ボタンを押すことで新たなデータを追加する事はできているのですが
ビューの移動をしないと画面上が更新されません。
データが追加されると同時に、ビューを更新したいと思っています。
アドバイスお願いします。
No.1
- 回答日時:
テーブルの行を増減するプログラムの場合、教科書的な手法なら、reloadDataメソッドを呼ぶことはないんですけど、どういうプログラムを作っていらっしゃるんですか?
いちどApple提供のプログラミングガイドを一読なさってはいかがですか?Table Viewのガイドももちろんありますから、それで教科書的な手法を理解したうえで、自分流のプログラムをお考えになってはいかがですか?
回答ありがとうございます。
不十分な説明で申し訳ありません
追加回答の補足にコードの詳細を書きましたので、そちらをご覧いただきたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- その他(Microsoft Office) excel テーブル 4 2023/03/18 16:11
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
- InternetExplorer(IE) お気に入りの「一覧」の表示 2 2022/11/21 13:59
- Visual Basic(VBA) 【ExcelVBA】動的にボタン、ボタン名を生成できますか? 7 2022/04/08 12:54
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- その他(Microsoft Office) エクセルでテーブルの最終行が自動追加されない 1 2023/01/04 15:09
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NETでフォーム上にExcelのよ...
-
C#で設定時刻到来時にイベント...
-
コンポーネントの再利用技術とは
-
ソフトウェアコンポーネントの...
-
VBSでCDトレイのオープン/ク...
-
ファイル保存先のダイアログが...
-
[delphi] 変数を利用してコンポ...
-
delphi stringgrid
-
JScrollPane上のJTableの再描画
-
java applet 上段に2×3、下段に...
-
ツールボックスのような折りたたみ
-
SwingでのGroup作成
-
DELPHI2005 検索結果の複数の項...
-
VS2010デザイナーの読込エラー...
-
C++Builder
-
アクティブなTextFiel...
-
エクセルVBAで、条件に一致する...
-
変数名の付け方
-
「タイプ初期化子が例外をスロ...
-
インスタンス参照でアクセスで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETでフォーム上にExcelのよ...
-
VB.NETでMSComm が追加できず?
-
VB6のツールボックスへのコンポ...
-
Visual Basic 2010を使ってRS-2...
-
ファイル保存先のダイアログが...
-
requestFocusについて
-
JButton配列でのイベント処理
-
C#で設定時刻到来時にイベント...
-
パネルのフォーカス移動
-
ツールボックスのような折りたたみ
-
JScrollPane上のJTableの再描画
-
VBSでCDトレイのオープン/ク...
-
C++Builder でPanel上にフォー...
-
Delphiでの画像の表示について...
-
文字の色の変更
-
ダイアログでタイトルバーを非表示
-
Unity、コントローラーによるボ...
-
画像を一瞬だけ表示する。
-
[delphi] 変数を利用してコンポ...
-
VBでCPUの使用率を取得できます...
おすすめ情報