1

UITableview別の から のデータをリロードしたいUIView

(UITableviewは にありますListNoteViewController)

DetailViewController私が(他のuiview)から行う呼び出しは次のとおりです。

ListNoteViewController *controller = [[ListNoteViewController alloc] initWithNibName:@"ListNoteViewController" bundle:[NSBundle mainBundle]];

[controller.TableNotes reloadData];

しかし、何も起こりません。誰か助けてください。

高度な感謝

4

2 に答える 2

3

まだ作成されていないテーブルビューをリロードしようとしているため、何も起こりません。UITableViewなどの UI要素UILabelは、特定のUIViewControllerのビューがロードされた後にのみ作成されます。ここでは、ビューコントローラのみを初期化しました。

だからあなたはこれを書くべきです

     -(void)viewDidAppear:(BOOL)animated 
     {
        [self.TableNotes reloadData];
     }

また

  -(void)viewWillAppear:(BOOL)animated 
   {
       [self.TableNotes reloadData];
   }

ListNoteViewControllerの。

これがコードの問題です。また、ListNoteViewControllerがすでにスタックにある場合、つまり、同じビューコントローラをすでにロードしていて、テーブルビューをリロードしようとしている場合は、カスタムデリゲートを使用して同じことを実現できます。

ここでデリゲートを追加する方法を確認できます。

于 2013-03-19T12:32:46.133 に答える
3

デリゲートを使用できます。

DetailViewController.h で

@property (nonatomic, strong) id Delegate; 

ListNoteViewController.m 内

-(void)myTVReloadMethod {
[myTable reloadData];
}

そして、あなたがDetailViewControllerに行くとき

DetailViewController *dvc = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:[NSBundle mainBundle]];
dvc.Delegate = self;
[self.navigationController pushViewController:dvc animated: yes];

DetailViewController の任意のメソッドで

[delegate performSelector:@selector(myTVReloadMethod) withObject:nil];
于 2013-03-19T13:19:29.040 に答える