2012-12-07 60 views
0

我有一類定義如下:更新的UITableViewDelegate不上繪製

@interface ClassViewController : ContentViewController <UITableViewDelegate, 
UITableViewDataSource> { 
    IBOutlet UITableView* mTableView; 
    NSMutableArray *feeds; 
    NSMutableData *responseData; 
} 
@property (nonatomic, retain) UITableView* mTableView; 
@property (nonatomic, strong) NSMutableArray* feeds; 
@property (nonatomic, strong) NSMutableData* responseData; 

我試圖JSON請求後加載內容。但是,直到我操作屏幕(例如向下滾動)之後,表格纔會隨新內容一起更新。

我正在使用[self->mTableView reloadData];無效。此外,在:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 

我設置:

self.mTableView = tableView; 

否則結果不會傳播到該表在所有。

有什麼我丟失,或者應該將self.mTableView定義放置在別處嗎?

我是Objective-C和iOS開發人員的新手,所以如果我要留下一些東西,請告訴我。

+0

您可以在IB中定義self.mTableView。將它聲明爲IBOutlet可以讓您控制從視圖控制器拖動到表視圖來執行此操作。一旦你的數據源已經更新,調用reloadData應該是你需要顯示的數據。不過,我不知道連接你的插座是否能解決你的問題。 – geraldWilliam

+0

像這樣? 'IBOutlet UITableView * mTab​​leView;' – wanovak

回答

1

您應該:

(1)連接到mTableView在界面生成器表視圖對象。 (2)請注意,您可以僅使用財產記數法self.mTableView而不是self->mTableView

(1)將解決您的問題。 (2)只是一個風格問題(主要)。

enter image description here

+0

'mTableView'未列爲出口。我將其定義爲:'IBOutlet UITableView * mTab​​leView;'。那是不正確的?謝謝你的方式 – wanovak