0

テーブルビューにデータを保存するのに問題があります。

これは、テーブルビューをポップして注文したすべての料理を表示するボタンを備えたメニューアプリです。NSMutableArrayを使用してデータを保存していますが、テーブルビューを閉じると、テーブル内のデータが表示されます。空のテーブルである初期ステータスにリセットされます。

この問題を解決するにはどうすればよいですか、助けてくれてありがとう!

FPPopoverライブラリを使用して、ポップオーバーテーブルビューを表示しています。コードは次のとおりです。

- (IBAction)revealOrderList:(id)sender
{
    SAFE_ARC_RELEASE(popover); popover=nil;

    OrderListViewController *controller = [[OrderListViewController alloc] initWithStyle:UITableViewStylePlain];
    UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:controller];
    SAFE_ARC_RELEASE(controller); controller=nil;

    popover = [[FPPopoverController alloc] initWithViewController:nc];
    popover.tint = FPPopoverDefaultTint;
    popover.contentSize = CGSizeMake(300, 500);
    [popover presentPopoverFromView:sender];
}

そして、ポップオーバーテーブルビューでは:

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.navigationItem.leftBarButtonItem = self.editButtonItem;

    orderList = [[NSMutableArray alloc] initWithObjects:@"One", @"Two", @"Three", nil];

    //add the add button
    UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(insertNewObject)];
    self.navigationItem.rightBarButtonItem = addButton;
}

- (void)insertNewObject
{
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Add new thing"
                                                message:@""
                                               delegate:self
                                      cancelButtonTitle:@"Cancel"
                                      otherButtonTitles:@"OK", nil];

    //Set the style of UIAlertView
    alert.alertViewStyle = UIAlertViewStylePlainTextInput;

    //Show the UIAlertView
    [alert show];
}
4

2 に答える 2

0

テーブルビューは最初はデータを正しく格納していると言っているので、テーブルビューがデータソースに正しく接続されていると思います。データが消える理由を推測する必要がある場合は、テーブルを閉じるときに、コントローラー、つまりデータを解放することになります。テーブルを開いたときに、テーブルのコントローラーに初期データを渡すことを許可することをお勧めします。

そうでない場合は、関連するコードを投稿することで、答えを見つけることができます。

于 2013-03-26T21:47:10.113 に答える
0

データはそれ自体では保存されません。アレイに初期データを入力できますが、新しいデータを保存するには、コアデータが必要であるか、別の方法NSUserDefaultsで新しいデータをファイルまたはデータベースに保存するために使用する必要があります。Tim roadleyには、コアデータを扱う優れたチュートリアルセットがあります。リンクは次のとおりです。http://timroadley.com/tutorials-index/

また、保存しようとしているデータの量によっても異なります。それが膨大な量である場合は、SQLデータベースの方が適しています。NSUserDefaultsまたはコアデータを試してください。ただし、配列を設定するだけでは、新しいデータを保存することはできません。配列には、コードを介して入力した元のデータのみが表示されます。また、アップルにはデータを保存する非常に良い例があります。サンプルコードBirdWatchingを検索してみてください。ここにリンクがあります:http://developer.apple.com/library/IOs/ipad/#documentation/iPhone/Conceptual/SecondiOSAppTutorial/GettingStarted/GettingStarted.html

これがお役に立てば幸いです。

于 2013-03-26T22:08:09.437 に答える