2016-03-03 55 views
0

我正在使用帶標題,電話和電子郵件的分段控件。我從地址簿獲取聯繫人詳細信息並將它們存儲爲字典數組。每個字典都帶有「名稱」,「電子郵件」,「圖像」,「電話」鍵。我的要求是在電子郵件被點擊時只顯示在桌面視圖中的電子郵件的聯繫人,並且在電話按鈕在段控制上被點擊時顯示與電話的聯繫人。請幫我實現這一點。如何更改不同分段控制索引的數據源

+0

你店在單個陣列德所有字典。同時顯示您的細分控制動作,很容易解決 –

回答

1

我們可以在這裏實現這種多ways.in我用的是Tag概念,例如

第1步

ViewDidLoad,設置爲您tableview.tag=1;

步驟2

- (IBAction)segBtnTapped:(id)sender { 

    if(yourSegmentControl.selectedSegmentIndex==0){ 
    // email 
    tableview.tag=1; 
} 
else if(segControlForColor.selectedSegmentIndex==1){ 
    // phone 
    tableview.tag=2; 
} 
else{ 
    // titles 
    tableview.tag=3; 
} 
[yourtableView reloadData]; 
} 

步驟3

沒有必要改變對部分或任何numberof行只是叫你CellForRowatIndexpathdidSelectrowatIndexpath,爲前

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


UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    if(tableview.tag == 1) 
    { 
     //code for email 
     cell.textLabel.text =[[yourarrayName objectAtIndex:indexPath.row]objectForKey:@"email"]; 

    } 

    else if(tableview.tag == 2) 
    { 
     //code for phone 

cell.textLabel.text =[[yourarrayName objectAtIndex:indexPath.row]objectForKey:@"phone"]; 

    } 

    else if(tableview.tag == 3) 
    { 
     //code for titles 
     cell.textLabel.text =[[yourarrayName objectAtIndex:indexPath.row]objectForKey:@"titles"]; 
    } 
    return cell; 
} 

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
if(tableview.tag == 1) 
    { 
     //code for email 
     NSLog(@"email==%@",[[yourarrayName objectAtIndex:indexPath.row]objectForKey:@"email"]); 

    } 

    else if(tableview.tag == 2) 
    { 
     //code for phone 

    NSLog(@"phone==%@",[[yourarrayName objectAtIndex:indexPath.row]objectForKey:@"phone"]); 

    } 

    else if(tableview.tag == 3) 
    { 

     NSLog(@"title==%@",[[yourarrayName objectAtIndex:indexPath.row]objectForKey:@"titles"]); 
    } 

} 
+0

不錯。但是在上面的代碼中,我可以直接在桌面視圖中顯示電話號碼和電子郵件,但是我希望一次顯示帶有電子郵件的聯繫人姓名,下次聯繫電話號碼。 – Naveen

+0

我們可以修改任何我們需要的chioce是你的 –

+0

你可以舉一些例子 –

0

它可以通過在下面的委託方法中檢查segmentedControl索引狀態來完成。

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    if segmentedControl.selectedSegmentIndex == 0 { 
     // Load phone values from dictionary 
     .... 
    } 
    else { 
     // Load email values from dictionary 
     .... 
    } 
} 

不要忘記當分段控制索引被更改時重新加載表。

+0

我可以做到這一點,但我的字典是有關鍵「名稱」,「電子郵件」,「電話」的值。在一種情況下,我想顯示有電子郵件的聯繫人,並在接下來我需要顯示電話號碼的聯繫人。我怎樣才能分開他們。 – Naveen

+0

遍歷字典數組,並使用selectsegmentindex的「phone」鍵的值0 – AnonymousRacer

相關問題