关闭SecondViewController时,firstViewController中的UIButton不会正确更改图像

时间:2012-11-16 10:39:21

标签: ios uiviewcontroller uibutton viewdidload

我正在从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];
}

1 个答案:

答案 0 :(得分:0)

您可以让第一个视图控制器成为第二个视图控制器的委托。

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

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