2013-06-10 4 views
0

xcode 4.6에 문제가 있습니다.XCODE4.6 UITableViewCell

메인 스토리 보드에는 버튼 & TableView가 포함되어 있습니다. 분명히 앱을 실행하고 버튼을 클릭하면 표보기는 첫 번째 열과 마지막 열의 데이터 만 표시합니다.

저는 현재 14 개의 열로 구성된 하나의 데이터 행을 가진 데이터베이스와 테이블을 생성 한 sqlite3을 사용하고 있습니다. 첫 번째 열은 기본 정보 키입니다.

다음은 내 UITableViewCell 코드 * 동작 버튼입니다.

어떤 통찰력이라도 대단히 감사하겠습니다.

감사합니다.

- (있는 UITableViewCell *)를 tableView (jQuery과 *)를 tableView cellForRowAtIndexPath (NSIndexPath *) indexPath { 정적는 NSString * CellIdentifier = @ "셀"; UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier : CellIdentifier];

if (!cell) { 
    cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier]; 
} 

DefenseStats *aDefenseStats = [arrayOfDefenseStats objectAtIndex:indexPath.row]; 

cell.textLabel.text = aDefenseStats.defense_team_name_mp; 
cell.detailTextLabel.text = [NSString stringWithFormat:@"%d",aDefenseStats.defense_games_mp]; 
cell.detailTextLabel.text = [NSString stringWithFormat:@"%.2f",aDefenseStats.defense_points_per_game_mp]; 
cell.detailTextLabel.text = [NSString stringWithFormat:@"%.2f",aDefenseStats.defense_yards_per_game_mp]; 
cell.detailTextLabel.text = [NSString stringWithFormat:@"%.2f",aDefenseStats.defense_rushing_yards_per_game_mp]; 
cell.detailTextLabel.text = [NSString stringWithFormat:@"%.2f",aDefenseStats.defense_passing_yards_per_game_mp]; 
cell.detailTextLabel.text = [NSString stringWithFormat:@"%d",aDefenseStats.defense_interception_mp]; 
cell.detailTextLabel.text = [NSString stringWithFormat:@"%d",aDefenseStats.defense_interception_touchdown_mp]; 
cell.detailTextLabel.text = [NSString stringWithFormat:@"%d",aDefenseStats.defense_forced_fumble_mp]; 
cell.detailTextLabel.text = [NSString stringWithFormat:@"%d",aDefenseStats.defense_defensive_touchdown_mp]; 
cell.detailTextLabel.text = [NSString stringWithFormat:@"%d",aDefenseStats.defense_tackle_mp]; 
cell.detailTextLabel.text = [NSString stringWithFormat:@"%d",aDefenseStats.defense_pass_deflection_mp]; 
cell.detailTextLabel.text = [NSString stringWithFormat:@"%d",aDefenseStats.defense_sack_mp]; 

return cell; 

}

  • (IBAction를) displayDefenseStatsButton (ID) 송신기 {

    sqlite3_stmt *의 문;

    (sqlite3_open ([dbPathString UTF8String에, & americanfootballDB) == SQLITE_OK 있으면) { [arrayOfDefenseStats removeAllObjects];

    NSString *querySql = [NSString stringWithFormat:@"SELECT * FROM DEFENSE_TEAM_STATS"]; 
    const char* query_sql = [querySql UTF8String]; 
    
    if (sqlite3_prepare(americanfootballDB, query_sql, -1, &statement, NULL) == SQLITE_OK) 
    { 
        while (sqlite3_step(statement)==SQLITE_ROW) 
        { 
    
         NSString *defense_team_name_string = [[NSString alloc]initWithUTF8String:(const char *)sqlite3_column_text(statement, 1)]; 
         NSString *defense_games_string = [[NSString alloc]initWithUTF8String:(const char *)sqlite3_column_text(statement, 2)]; 
         NSString *defense_points_per_game_string = [[NSString alloc]initWithUTF8String:(const char *)sqlite3_column_text(statement, 3)]; 
         NSString *defense_yards_per_game_string = [[NSString alloc]initWithUTF8String:(const char *)sqlite3_column_text(statement, 4)]; 
         NSString *defense_rushing_yards_per_game_string = [[NSString alloc]initWithUTF8String:(const char *)sqlite3_column_text(statement, 5)]; 
         NSString *defense_passing_yards_per_game_string = [[NSString alloc]initWithUTF8String:(const char *)sqlite3_column_text(statement, 6)]; 
         NSString *defense_interception_string = [[NSString alloc]initWithUTF8String:(const char *)sqlite3_column_text(statement, 7)]; 
         NSString *defense_interception_touchdown_string = [[NSString alloc]initWithUTF8String:(const char *)sqlite3_column_text(statement, 8)]; 
         NSString *defense_forced_fumble_string = [[NSString alloc]initWithUTF8String:(const char *)sqlite3_column_text(statement, 9)]; 
         NSString *defense_defensive_touchdown_string = [[NSString alloc]initWithUTF8String:(const char *)sqlite3_column_text(statement, 10)]; 
         NSString *defense_tackle_string = [[NSString alloc]initWithUTF8String:(const char *)sqlite3_column_text(statement, 11)]; 
         NSString *defense_pass_deflection_string = [[NSString alloc]initWithUTF8String:(const char *)sqlite3_column_text(statement, 12)]; 
         NSString *defense_sack_string = [[NSString alloc]initWithUTF8String:(const char *)sqlite3_column_text(statement, 13)]; 
    
         DefenseStats *defensestats =[[DefenseStats alloc]init]; 
    
         [defensestats setDefense_team_name_mp:defense_team_name_string]; 
         [defensestats setDefense_games_mp:[defense_games_string intValue]]; 
         [defensestats setDefense_points_per_game_mp:[defense_points_per_game_string floatValue]]; 
         [defensestats setDefense_yards_per_game_mp:[defense_yards_per_game_string floatValue]]; 
         [defensestats setDefense_rushing_yards_per_game_mp:[defense_rushing_yards_per_game_string floatValue]]; 
         [defensestats setDefense_passing_yards_per_game_mp:[defense_passing_yards_per_game_string floatValue]]; 
         [defensestats setDefense_interception_mp:[defense_interception_string intValue]]; 
         [defensestats setDefense_interception_touchdown_mp:[defense_interception_touchdown_string intValue]]; 
         [defensestats setDefense_forced_fumble_mp:[defense_forced_fumble_string intValue]]; 
         [defensestats setDefense_defensive_touchdown_mp:[defense_defensive_touchdown_string intValue]]; 
         [defensestats setDefense_tackle_mp:[defense_tackle_string intValue]]; 
         [defensestats setDefense_pass_deflection_mp:[defense_pass_deflection_string intValue]]; 
         [defensestats setDefense_sack_mp:[defense_sack_string intValue]]; 
    
         [arrayOfDefenseStats addObject:defensestats]; 
        } 
    } 
    

    } [자기 myTableView] reloadData]; */

+0

의견 게시 방법에 사과드립니다. – dolm77

+0

질문 아래에 작은 "편집"링크가있어서이를 클릭하면 서식을 향상시킬 수 있습니다. – herzbube

답변

0

} 당신이 이상하고 또 다시 같은 위치 (cell.detailTextLabel.text)에 할당하고 있기 때문에, 마지막 하나는 계산합니다. 그래서 마지막 열만 보게됩니다.

cell.detailTextLabel.text = [NSString stringWithFormat:@"%d",aDefenseStats.defense_sack_mp];

나는 당신이 정말 원하는 것은 각 열에 대한 세포라고 생각합니다. 아마 14의 경우 switch 문으로, 해당 열 값을 선택 그런 다음 tableView:cellForRowAtIndexPath: 방법을 업데이트

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return 14; 
} 

cell.textLabel.text에 값을 할당합니다 : 다음에 그것을 얻을 것이다

NSString *defenseStatValue; 
switch (indexPath.row) 
{ 
    case (0): 
    defenseStatValue = aDefenseStats.defense_team_name_mp; 
    break; 
    case (1): 
    defenseStatValue = [NSString stringWithFormat:@"%d",aDefenseStats.defense_games_mp]; 
    break; 
    /* Add a case for each column index possible. */ 
} 
cell.textLabel.text = defenseStatValue; 

을 또한 cell.detailTextLabel.text에는 아무 것도 지정하지 마십시오.

+0

내 테이블 뷰에 데이터 열을 표시하려고합니다. 내 데이터를 표시하는 또 다른 방법이 있습니까? 또한 첫 번째 열의 데이터도 표시합니다. – dolm77