2012-10-31 128 views
0

我有一個表格視圖。我希望我的應用能夠像iPhone上的「聯繫人」應用那樣工作。當您在應用程序中選擇一個人時,它會轉到具有用戶姓名和電話號碼的視圖。並且選擇哪個單元並不重要,它始終使用相同的視圖,但使用不同的數據。我怎樣才能達到同樣的目的? 我想要一個視圖控制器,並且我希望每個單元格都可以將某些數據加載到所呈現的視圖控制器!我想使用NSUserDefaults(如果可能)。任何幫助將是偉大的,謝謝你!根據選擇的TableView單元格加載數據

P.S.我知道這是一個廣泛的問題,但我不確定在哪裏可以找到我搜索和搜索的答案。再次感謝!

+1

查看TheElements示例應用程序。它應該涵蓋你正在尋找的東西。 UITableView的文檔列出了不少使用表格視圖的示例應用程序。幾個顯示你需要什麼。 – rmaddy

回答

0

我想要一個視圖控制器,並且我希望每個單元格都可以將某些數據加載到所呈現的視圖控制器上 !

沒問題。用戶點擊單元格,表格的代表將獲得-tableView:didSelectRowAtIndexPath:消息。假設表的委託和數據源都是管理表的視圖控制器(因爲這是一個非常常見的設置)。因此,視圖控制器會查看單元格的索引路徑,從保存其數據的任何位置抓取關聯的數據,將連接到輕敲單元格的數據實例化爲詳細視圖控制器,並將其推入。

,你很可能缺少的部分是某種型號的存儲在表中顯示的數據。該表的視圖控制器需要了解該模型,因爲它是該表的數據源。它已經需要知道在哪裏找到足夠的數據來配置表中的每個單元。如果使用相同的模型存儲細節數據,則可以使用它來配置詳細視圖控制器。

例子:比方說,你有隻有一個部分的表。該表格的簡單模型可以是一組字典。當您的表視圖控制器需要填充單元格時,它會使用索引路徑的row作爲數組中的索引來獲取字典,並使用它來設置單元格。當用戶點擊一個單元格時,會發生完全相同的事情:您使用索引路徑中的row從數組中獲取正確的字典,然後使用它來設置詳細視圖控制器。您甚至可以將整個字典傳遞給詳細視圖控制器,並讓詳細視圖控制器獲得所需內容。這樣,表格視圖控制器就不必擔心詳細視圖控制器顯示的具體細節。

0

您創建的名稱(字符串)數組,並顯示在您的表視圖的名稱。 然後,一旦選擇了一個名稱,您將它作爲一個字符串保存在NSUserDefaults中。

- (void) tableView: (UITableView *) tableView didSelectRowAtIndexPath: (NSIndexPath *) indexPath 
{ 
    NSString *selectedString = [namesArray objectAtIndex:[indexPath row]]; 
    NSUserDefaults *infoSaved = [NSUserDefaults standardUserDefaults]; 
    [infoSaved setObject:selectedString forKey:@"theName"]; 
    [infoSaved synchronize]; 
    [self performSegueWithIdentifier:@"segueToMoreInfo" sender:self]; 
} 

然後在您的第二個視圖控制器中,您從NSDictionary中加載包含NSDictionary項目的信息。

-(void) loadData { 
    NSUserDefaults *infoSaved = [NSUserDefaults standardUserDefaults]; 
    NSString *theName = [infoSaved objectForKey:@"theName"]; 
    NSDictionary *currentNameToDisplay = [itemsDictionary objectForKey:theName]; 
    // then you can set your labels with information in that NSDictionary item 
    [nameLabel setString:[currentNameToDisplay objectForKey:@"userName"]; 
    [ageLabel setString:[currentNameToDisplay objectForKey:@"userAge]; 
} 

這將是一個簡單的基本結構。 您可以將包含項目的主NamesDNSDictionary保存到plist文件中,或者甚至可以更好地將字典保存在NSUserDefaults中。

希望有所幫助。

相關問題