我仍然是一個obj-C,但我不清楚,我正在創建一個應用程序,當我添加項目到tableview時需要刷新一個tableview。我GOOGLE了一下,發現一些答案,說我需要使用[self.tableView reloadData]
,但它不適合我。加載視圖後無法更新UITableView
這裏是我的代碼爲我的tableView
- (NSInteger)numberOfSectionsInTableView:(UITableView *) tableView {
return 1; }
- (NSString *) tableView:(UITableView *) tableView titleForHeaderInSection:(NSInteger)section {
NSString *myTitle = [[NSString alloc] initWithFormat:@"Runs"];
return myTitle;
}
- (NSInteger) tableView:(UITableView *) tableView numberOfRowsInSection:(NSInteger)section {
return [entries count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier
forIndexPath:indexPath];
// Set up the cell...
NSString *cellValue = [entries objectAtIndex:indexPath.row];
cell.textLabel.text = cellValue;
return cell;
}
這裏是我填充表
- (void)populateTable{
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
NSString *username = appDelegate.username;
entries = [[NSMutableArray alloc]init ];
[self openDB];
NSString *sql = [NSString stringWithFormat:@"SELECT * FROM Savings WHERE username = '%@'",username];
sqlite3_stmt *statement;
if(sqlite3_prepare_v2(runnerAppDB, [sql UTF8String], -1, &statement, nil)==SQLITE_OK)
{
while(sqlite3_step(statement)==SQLITE_ROW)
{
char *field1 = (char *) sqlite3_column_text(statement, 0);
NSString *field1Str = [[NSString alloc] initWithUTF8String:field1];
// username - distance - speed - date - comment
NSString *str = [[NSString alloc] initWithFormat:@"%@ %@ %@ - %@", field1Str];
[entries addObject:str];
}
} }
我已經嘗試做的是調用populateTable功能每次我添加一些代碼到數據庫,但仍然不刷新,請有人可以幫我嗎?一段時間以來一直困擾着這個問題。
感謝
您的代碼不會創建一個單元格開始,使用調試器檢查它返回的內容,我認爲它將爲零。 – Tim
邁克爾,在開始爲你編寫代碼之前,你應該先掌握iOS開發。 – samfisher