2011-03-19 106 views
1

我有這是由用戶填充的一個的NSMutableArray:與可變數組填充的tableview

NSString *_string = _text.text; 
[_array addObject:_string]; 
[self saveIt]; 
_text.text = @""; 

_text是一個TextField,_array是一個的NSMutableArray

然後我有這節省了一個方法字符串中的NSUserDefaults的:

-(void)saveIt { 

NSUserDefaults *tableDefaults = [NSUserDefaults standardUserDefaults]; 
[tableDefaults setObject:_array forKey:@"key"]; 

}

好,我怎麼能顯示保存在應用程序再次打開時在tableview中的數組?

謝謝:)

回答

2

您加載陣列背出的NSUserDefaults的,並使用數組的內容從表視圖的data source,特別tableView:numberOfRowsInSection:tableView:cellForRowAtIndexPath:的各種方法返回適當的值。


簡單的例子:

首先,閱讀陣列背出NSUserDefaults的的在某些時候,可能在你的類的初始化或application:didFinishLaunchingWithOptions:(主叫當然NSUserDefaults的的registerDefaults:,後):

_array = [[NSMutableArray arrayWithArray:[[NSUserDefaults standardUserDefaults] arrayForKey:@"key"]] retain]; 

然後將其用於上述方法:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    return _array.count; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"]; 
    if (!cell) { 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"] autorelease]; 
    } 
    cell.textLabel.text = [_array objectAtIndex:indexPath.row]; 
    return cell; 
} 

這應該讓你開始。在向陣列添加內容時,您可能還想在表視圖上調用reloadDatainsertRowsAtIndexPaths:withRowAnimation:,有關詳細信息,請參見the documentation

+0

你能舉個例子嗎? :) – Leon 2011-03-19 22:19:32

+0

@Leon:你走了。 – Anomie 2011-03-19 22:33:06