4

UITableViewとを使用するアプリを作成していますUITableViewController。ただし、 を呼び出す[self.tableView reloadData];UITableViewController、何も起こりtableView: cellForRowAtIndexPath:ません ( は呼び出されません)。私は何をすべきか?

- (void) UserChangedAmmountAndCurrency: (NSNotification*) notification {
    self.localBank.activeAmmount=((NSNumber*)[notification.userInfo objectForKey:@"newAmmount"]).doubleValue;
    self.localBank.activeCurrency=[self.localBank.worldBank requestCurrencyForLocalBank:((NSString*)[notification.userInfo objectForKey:@"newISO4217Currency"])];
    [self.tableView reloadData];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    NSNumber *ammount= [self.localBank ammountForElementAtIndex:indexPath.row];
    VIPCurrency* currency=[self.localBank currencyForElementAtIndex:indexPath.row];


    static NSString *CellIdentifier = @"cellWithCurrencyAndAmmount";
    VIPConversionCell* cell=[self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    cell.longCurencyIdentifier.text=currency.longName;
    cell.shortCurrencyIdentifier.text=currency.shortName;
    cell.textfieldForAmmount.text=ammount.stringValue;
    return cell;
}

編集:私はいくつかの追加のテストを行いました。tableview データソースとデリゲートが、reload メソッドを呼び出すために使用するビュー コントローラーであることをテストしましたが、これは問題ありませんでした。また、他にも奇妙なことに気付きました。reloadData を呼び出すとき、どちらnumberOfSectionsInTableView:numberOfRowsInSection:呼び出されません。reloadData を呼び出す前に基本的なことをしていないように感じますが、何がわかりません。どういうわけか、セルを期限切れとして具体的に設定する必要があるのでしょうか?

編集:メソッドがメインスレッドで呼び出されたことも確認しましたが、これも問題ありませんでした

4

3 に答える 3

0

nilfrom呼び出しをチェックするという考え方はdequeReusableCellWithIdentifier、新しいセルを作成して返すことです。以前に指定された識別子でセルを作成し、再利用可能なプールにない限り、そのメソッドは を返しnilます。したがって、@Verecが述べたように、自分でセルを確認しnilて作成する必要がありますreturn

于 2013-03-29T22:10:12.817 に答える
0

.xibファイルと.hファイルにテーブル ビュー デリゲートを設定する(UITableViewDataSource, UITableViewDelegate)

[myTableView reloadData];

于 2013-03-30T11:47:21.737 に答える
-2

追加するだけです

UITableViewDataSource,UITableViewDelegate

.h で

@interface yourviewcontroller : UIViewController <UITableViewDataSource,UITableViewDelegate>
于 2013-03-30T11:41:45.113 に答える