-1

私は4つのイメージビューを持っています.1番目のイメージビューのイメージをクリックすると、次の描画可能なビューに転送されます.ここでは、ユーザーはドローパッドを使用してイメージを編集できます. ユーザーはその画像に線または四角形を描くことができますその画像をNSUserDefaultに保存し、ユーザーが最初の画面に戻ったときにその元の画像を以前に選択した画像に置き換えます

画像を NSUserDefault に保存する このコードを使用しました。

-(IBAction)SaveBtn:(UIBUttonSender*)sender
{
    [delegate.imagesDef setObject:UIImagePNGRepresentation(previewImageView.image) forKey:@"first"];

    NSData* imageData = [[NSUserDefaults standardUserDefaults] objectForKey:@"first"];
                 delegate.image = [UIImage imageWithData:imageData];

    NSLog(@"%@",[delegate.image description]);
    NSLog(@"%@",imageData);
    [delegate.imagesDef synchronize];
}

このコードは正常に画像を保存します。私はそれをログに記録しますが、前のコントローラーのイメージに移動しても置き換えられません

このコードを使用して、新しい編集画像を設定しました。

if([delegate.imagesDef objectForKey:@"first"])
    {

        NSData* imageData = [[NSUserDefaults standardUserDefaults] objectForKey:@"first"];
        delegate.image = [UIImage imageWithData:imageData];

        NSLog(@"%@",[delegate.image description]);
        NSLog(@"%@",imageData);

        NSLog(@"%@",delegate.image);

        FirstImageView.image=delegate.image;    
    }

画像は変更されていません。これを解決するにはどうすればよいですか。

これを手伝ってください。

前もって感謝します。

4

2 に答える 2

5

を に格納しないでUIImageくださいNSUserDefaultsNSUserDefaults画像全体ではなく、小さなデータを対象としています。イメージをディスク (ドキュメント ディレクトリ) に書き込み、パスを NSUserDefaults に保存するだけです。

読み込み中:

NSString *pathToFile;
UIImage *image;
NSData *imageData = UIImagePNGRepresentation(image);
[imageData writeToFile:pathToFile atomically:YES];
[[NSUserDefaults standardUserDefaults] setObject:pathToFile forKey:@"image"];

復元:

NSString *pathToFile = [[NSUserDefaults standardUserDefaults] objectForKey:@"image"];
NSData *imageData = [NSData dataWithContentsOfFile:pathToFile];
UIImage *image = [UIImage imageWithData:imageData];

しかし、プロパティを使用して ViewController 間で UIImage オブジェクト自体を渡すだけではないのはなぜですか?

于 2013-09-17T05:42:06.963 に答える
0

まず第一に、NSUserDefaultこれを使用することはお勧めしません。

いくつかの選択肢:

1)この画像をfirstViewControllersプロパティに割り当てて、オブジェクトが宣言されている場合に後でアクセスできるようにすることができますsecondViewController

2)からNSNotification画像を送信できるfirstViewControllerの考えに送信できますfirstViewControllersecondViewController

これがあなたを助けることを願っています。

于 2013-09-17T05:41:32.413 に答える