我希望我的视图控制器在单击按钮时检查另一个视图控制器上是否有图像。但是到目前为止,即使有图像,模拟器也不会执行循环。

码:

- (IBAction)buttonClicked:(id)sender {

    iPhotoViewController *photo = [[iPhotoViewController alloc] initWithNibName:@"iPhotoViewController" bundle:nil]  ;


    if (photo.mainView.image)
    {
        but = (UIButton *) sender;
        self.selectedImage = [_images objectAtIndex:but.tag];

        iPhoto2AppDelegate *delegate = [[UIApplication sharedApplication] delegate];
        [delegate.navController popViewControllerAnimated:YES];

        [photo release];
    }


谢谢,
普拉文

最佳答案

您正在创建iPhotoViewController的新实例,这意味着您要使用的图像必须在nib文件中可用。而且在nib文件中可用意味着它在您的项目中可用,因此创建一个新的iPhotoViewController只是为了查看该映像是否存在有些奇怪。

在已加载图像的某个地方可能已经存在此iPhotoViewController的实例了吗?如果是这样,则需要检查该实例。

但是也许您正在测试事物并在笔尖中设置了图像,只是想确保它可以工作。在这种情况下,未设置photo.mainView.image的原因是因为您仅创建了视图控制器,但尚未从笔尖加载和设置视图。要伪造此图像,您需要在检查图像是否设置之前访问控制器的view属性。

iPhotoViewController *photo = [[iPhotoViewController alloc] initWithNibName:@"iPhotoViewController" bundle:nil] ;

[photo view];
if (photo.mainView.image) {
// continue as before

10-06 07:30