UIToolBar には、UIView w/UITextViews と UIView w/UITableView の 2 つのビューがあります。
UIToolBar を介して呼び出される UITableView。UITableView が初めて読み込まれるときに、DB にアクセスして情報を取得します。UITextViewsを使用してUIViewに「タブ」で戻り、UITableViewに「タブ」で戻りますが、viewDidLoadやinitWithNibNameなどのデリゲートメソッドは呼び出されないため、テーブル内のデータは古くなっています。
というわけで方法を発見
-(void)viewWillAppear:(BOOL)animated {
が呼び出されますが、tableView へのアクセス権はありません。たとえば、
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
私はこの推奨事項に出くわしました:
「UITableView を更新する方法を理解できないようです...これを見つけましたが、これは私が抱えているのと同じ問題のようです。
私がしたことは、MyModalViewController クラスに MyTableViewController* プロパティを作成することです。presentModalView の前に、このプロパティへのテーブル ビュー コントローラー ポインターをモーダル ビュー コントローラーに格納します。
モーダルビューコントローラーにいるときに、テーブルビューコントローラーへの参照があります。次に、この格納されたテーブル ビュー コントローラーを使用して、その tableView を見つけてから、reloadData を見つけます。
汚れているように感じますが、仕事は完了します。」
それが答えなら、それをコーディングする方法がわかりません。
よろしくお願いします!
- sk
注:私はこれを試しました:
.h
UITableView *tableViewPtr;
@property (nonatomic, retain) UITableView *tableViewPtr;
.m
@synthesize tableViewPtr;
そして、それを保管してください -
(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {:
...
self.tableViewPtr = tableView;
...
次に、から呼び出してみます
-(void)viewWillAppear:(BOOL)animated {
[self.tableViewPtr reloadData];
しかし、それはうまくいかないようです。