2013-04-16 45 views
0

我有一個程序連接到MAMP服務器並選擇我的數據庫並在Xcode模擬器中顯示內容。現在我有2個選項卡,兩個數據都是相同的。我希望這些標籤分離要顯示在每個標籤中的數據類型。 (1個選項卡應該顯示葡萄酒類型和其他顯示酒國家)在程序中顯示數據庫內容的iOS程序,由標籤分隔

我認爲我必須做一個類(NSObject的子類)拉動數據,然後另一個視圖控制器與一個可變數組持有每個選項卡所需的數據,但是我如何執行此操作?我如何創建一個MutableArray?

在這裏,代碼在我TableViewController.m,它連接到使用JSON我的數據庫:
- (無效)viewDidLoad中 { [超級viewDidLoad中]; NSURL * url = [NSURL URLWithString:@「http:// [localhost]:8888/wine.php」]; //修改此以匹配您的網址。

NSString *jsonreturn = [[NSString alloc] initWithContentsOfURL:url]; // Pulls the URL 
NSLog(jsonreturn); // Look at the console and you can see what the restults are 

NSData *jsonData = [jsonreturn dataUsingEncoding:NSUTF32BigEndianStringEncoding]; 
NSError *error = nil; 

// In "real" code you should surround this with try and catch 
NSDictionary * dict = [[CJSONDeserializer deserializer] deserializeAsDictionary:jsonData error:&error]; 
if (dict) 
{ 
    rows = [[dict objectForKey:@"wine"] retain]; 


} 
NSLog(@"Array: %@",rows); 

[jsonreturn release]; 

}

然後創建用於實現代碼如下的另一種方法:

編譯標記 - 表視圖數據源

  • (NSInteger的)的tableView:(UITableView的*)的tableView numberOfRowsInSection: (NSInteger)部分{return count [rows count]; }

//自定義表格視圖單元格的外觀。 - (UITableViewCell的*)的tableView:(UITableView的*)的tableView的cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *CellIdentifier = @"Cell"; 

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (cell == nil) { 
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease]; 
} 


// Configure the cell. 
NSDictionary *dict = [rows objectAtIndex: indexPath.row]; 

//cell.textLabel.text = [dict objectForKey:@"id"]; 
//cell.textLabel.text = [dict objectForKey:@"wineColor"]; 
//cell.textLabel.text = [dict objectForKey:@"wineGrape"]; 
cell.textLabel.text = [dict objectForKey:@"wineCountry"]; 
cell.detailTextLabel.text = [dict objectForKey:@"id"]; 

return cell; 

}

與此相同的數據(酒的國家)將同時顯示在葡萄&國家標籤。我如何創建一個可變數組來獲取每個標籤中應顯示的數據?

回答

0

您需要第二個(葡萄)視圖控制器來爲其自己的tableview實現tableView數據源和委託方法,但是您不需要另一個數組,您可以使用JSON字典,但將正確的文本添加到標籤內您的葡萄細胞(在cellForRowAtIndexPath UITableView數據源方法中)。你會使用線上方當前註釋掉來填充您的標籤在你的「葡萄」表視圖細胞:

//cell.textLabel.text = [dict objectForKey:@"wineColor"]; 
//cell.textLabel.text = [dict objectForKey:@"wineGrape"]; 

你可以添加一個自定義的UITableViewCell或使用字幕樣式和設置字幕顏色。

+0

所以我創建另一個視圖控制器和複製相同的tableview數據源代碼,但取消註釋葡萄項目的文本標籤?或者還有什麼我必須做的呢? @HackyStack謝謝你的回答 – deezy

相關問題