2011-11-08 12 views
0

カスタムディテールビューコントローラを保存するための助けが必要です。私のテーブルビューでは、ユーザーがカスタムセルを追加したり削除したりできる追加と編集ボタンがあります。各セルは同じカスタムビューに移動しますが、唯一の問題は、SQliteまたは別のデータベースを使用して各セルを保存できる方法があることです。 NSUserDefaultsを使用して、大量のViewControllerを作成して各セルを保存する必要はありません。SQliteでカスタムUITableView詳細ビューを保存しますか?

マイコード:

テーブルH =

IBOutlet UITableView *warrantyTableView; 

    NSMutableArray *data; 
    IBOutlet UITextField *tableCellText; 
    IBOutlet UITableView *mainTableView; 
    IBOutlet UINavigationItem *navItem; 
} 

- (IBAction)addRowToTableView; 
- (IBAction)editTable; 
- (NSString *)dataFilePath; 
- (IBAction)endText; 

Table.m =

- (NSString *)dataFilePath { 

     NSString *dataFilePath; 
     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
     NSString *documentDirectory = [paths objectAtIndex:0]; 
     dataFilePath = [[documentDirectory stringByAppendingPathComponent:@"applicationData.plist"] retain]; 
     return dataFilePath; 

    } 

    - (void)saveData { 

     [NSKeyedArchiver archiveRootObject:[data copy] toFile:[self dataFilePath]]; 

    } 
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
    { 
     // Navigation logic may go here. Create and push another view controller. 

     PushedViewController *pushedViewController = [[PushedViewController alloc] initWithNibName:@"PushedView" bundle:nil]; 
     // ... 
     // Pass the selected object to the new view controller. 
      PushedViewController *ifView = [[PushedViewController alloc] initWithNibName:@"PushedView" bundle:nil]; 
      [self.navigationController pushViewController:ifView animated:YES]; 
      [ifView release]; 
     } 

答えて

1

なぜあなたは、データベース内の各セルを保存しますか? SQLiteのセル内のすべてのデータを保存します。アクセス中は、SQLiteデータベースから辞書の配列にデータを取得します。辞書には1つのセルのすべてのデータが含まれ、配列には各セルのデータを持つすべての辞書が含まれます。その後、その配列からのデータでtableviewをリロードします。オブジェクトをテーブルビューに編集/追加/削除するには、辞書全体から操作全体を行い、1回の操作が終了したらsqliteに保存して、再度テーブルビューをリロードします。

関連する問題