0

ボタンクリックでTableViewをリロードしたいのですが、たくさんのことを読みましたが[tableView reloadData]、問題を記述しなければならないことがわかりました。自分の関数にtableViewがないので ÌBoutlet UITableView *myTable、テーブルにリンクして関数を記述しました[myTable reloadData] が、何も起こりません。

セクションビューで、アイテムを追加および削除できます。テーブルのあるビューに変更した場合、それらは更新されません(ポーリングアップデーターの方が良いかもしれませんが、同じです)。テーブルビューを更新して新しいセルを表示したいと思います。

いいアイデアはありますか?ありがとう

編集:

私は.hに書き留めました

IBOutlet UITableView *myTable;

@property UITableView *myTable;

.mで

@synthesize myTable

- (IBAction)test:(id)sender
 {
   [self.myTableView reloadData];
 }

しかし、ボタンを押しても何も起こりません。NSLog関数の機能を確認するために、を設定しました

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
- (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
4

3 に答える 3

2

まず、アウトレットUITableViewxib適切に接続し@property、.hファイルと@synthesize.mファイルを作成してから、次のコード(self.tableView)を使用します。

-(IBAction)btnPressed:(UIButton *) Sender
{
  [self.tableView reloadData];
}

あなたに役立つかもしれません:)

ありがとう :)

于 2013-02-04T10:19:22.147 に答える
1

まず、その変数へのリンクがまだ保持されていることを確認します。リンクに問題がない場合は、

[self.tableview reladData];

リンクが壊れている場合は、最初に変数をUITableViewxibからにリンクしてから、上記と同じように呼び出してみてください。

これがお役に立てば幸いです。

于 2013-02-04T10:25:43.063 に答える
1

@propertyに関して行ったように、tableViewを.hファイルにリンクするときに、.mファイルで@synthesizeする必要のない新しいバージョンのXcodeを使用している可能性があります。

.hファイルで@propertyを定義すると、次のようになります。

  1. 次のように合成を使用します。

    @synthesize myTable;

したがって、次のようにreloadDataを使用します。

[myTable reloadData];
  1. 次のように合成を使用します。

    @synthesize myTable = _myTable;

したがって、次のいずれかのようにreloadDataを使用します。

either [_myTable reloadData]; or [self.myTable reloadData];
  1. または、@ synthesizeを使用しませんでした:

そして、あなたの場合(@synthesizeのない新しいバージョンのXcode)、@ synthesizeを使用しなかった場合は、これらの1つを記述する必要があります。

[_myTable reloadData];

また

[self.myTable reloadData];

お役に立てば幸いです。IBActionを作成する方法や、デリゲートを使用する方法については説明しません。これは、あなたが正しく実行していることを確認したためです。

幸運を

Update1:​​Xcode4.4以降の自動@synthesize機能のリソース:

http://useyourloaf.com/blog/2012/08/01/property-synthesis-with-xcode-4-dot-4.html

XCode4.3プロジェクトでXCode4.4Auto@Synthesizeが失敗する

Update2:システムを更新するためにプルしてこれを行う方がよいとあなたが言ったのを見たばかりです。iOSバージョンのように、作成しているアプリについて詳細を説明することをお勧めします。6.0以降の場合は、ネイティブのプルを使用して次のようにメソッドを更新できます。

http://www.lextech.com/2012/10/ios-6-pull-to-refresh-tutorial/

または、iOS 6.0でない場合は、いつでもEGOTableViewPullRefreshを使用できます。これまで使用してきましたが、iOS6.0以降でもうまく機能します。

https://github.com/enormego/EGOTableViewPullRefresh

于 2013-02-04T10:32:35.267 に答える