たぶんそれは似たような始まりですが、それは本当です。
まず、これが正しくフォーマットされていない場合は申し訳ありませんが、初めてこれを行います。私は長い間stackoverflowを使用してヘルプを見つけており、非常に役に立ちました(ありがとうございました)が、私自身の質問を投稿するのはこれが初めてです。この質問は何度も聞かれますが、[self.tableView reloadTable]を呼び出すと、メソッドnumberOfSectionsInTableViewとnumberOfRowsInSectionが呼び出されますが、cellForRowAtIndexPathは呼び出されません。
検索時に私が見たすべての答えは、次のバリエーションでした。
- tableViewは
nil
numberOfRowsInSection
は0です- tableViewのデリゲート/データソースが設定されていません。これらのどれも私には当てはまらないので、他に何が間違っているのだろうかと思っています。
しかし、私にはわかりません。4.間違ったuiTableViewでreloadTableを呼び出します。またはそれは他のいくつかの誤りについてです。
これで、私のAPPはドロップボックスに似ています。最初にログインすると、TableViewにファイルリスト(ディレクトリを含む)が表示され[self.navigationController.view addSubview:toolBar]
ます。また、[更新]ボタンをタッチすると、ビューの下部にツールバーが追加されました。 "、それは呼び出し[self.tableView reloadData]
てうまく機能します。
次に、ディレクトリを選択すると、による新しいファイルリストテーブルが取得pushViewController
されますself.navigationController
が、今回は「更新」に触れると、ステートメント[self.tableView reloadData]はcellForRowAtIndexPathではなくnumberOfSections、numberOfRowsを呼び出します。
cellForRowが2回目に呼び出されない理由について何か考えはありますか?前もって感謝します。
FileListViewController.h
@interface FileListViewController : UITableViewController <UITableViewDelegate, UITableViewDataSource>
FileListViewController.m
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (isDir) {
FileListViewController *fileListViewController = [[FileListViewController alloc] init];
[self.navigationController pushViewController:fileListViewController animated:YES];
}
}
- (void)refresh
{
[Utilities refresh];//Utilities is my custom class.
[self viewDidLoad];
[self.tableView reloadData];
}
テーブルビューのセクションと行の戻り数が0ではありません。
NSLog(@"Calling reloadData on %@", self.tableView);
「更新」に追加したとき:
- (void)refresh
{
[Utilities refresh];//Utilities is my custom class.
[self viewDidLoad];
NSLog(@"Calling reloadData on %@", self.tableView);
[self.tableView reloadData];
}
次に、CallingreloadDataonを返します。contentOffset:{0、0}>。デリゲート:FileListViewController、データソース:FileListViewController