我正在从SecondView控制器保存图像并调整其大小。
然后,当我回到Firstview Controller时,此控制器上的按钮图像必须
从刚刚保存的图像文件加载。
图像部分出现(仅图像的顶部)。但是,如果我再次访问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];
}
答案 0 :(得分:0)
您可以让第一个视图控制器成为第二个视图控制器的委托。
然后,不是将图像保存到磁盘然后从磁盘加载,而是将UIImage从第二个视图控制器传递回第一个视图控制器。
我没有检查过,但我几乎可以肯定将图像保存到磁盘是异步运行的,因此当您尝试再次加载图像时,图像可能还没有保存。