0

我正在从 SecondView 控制器中保存图像并调整它的大小。
然后,当我回到 Firstview 控制器时,必须从刚刚保存的图像文件中加载此控制器上的按钮图像。

并且图像部分出现(仅图像的顶部)。但是,如果我再次转到 SecondViewController 并且不再保存图像并返回到 First ViewController,则 Button 图像会完全显示并且看起来不错。

- (void)showImageFirst { 

    //Show thumb image in button.

    NSArray *sysPaths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES );
    NSString *docDirectory = [sysPaths objectAtIndex:0];
    NSString *filePath = [NSString stringWithFormat:@"%@/thumbtest.png", docDirectory];
    UIImage *tempimage = [[UIImage alloc] initWithContentsOfFile:filePath];

    [imageForButton setImage:tempimage forState:UIControlStateNormal];
}

我在 ViewDiDLoad 中调用它,我也尝试将它放在 ViewDidAppear 中:

-(void)viewWillAppear {
    [self.showImageFirst];
    [super viewWillAppear:animated];
}
4

1 回答 1

0

您可以使第一个视图控制器成为第二个视图控制器的代表。

然后,不要将图像保存到磁盘然后从磁盘加载回,只需将 UIImage 从第二个视图控制器传递回第一个视图控制器。

我还没有检查过,但我几乎可以肯定将图像保存到磁盘是异步运行的,因此当您尝试再次加载图像时,可能没有保存图像。

于 2012-12-13T13:54:10.940 回答