与另一个视图控制器中的视图控制器交互

时间:2010-11-30 23:43:53

标签: iphone uiviewcontroller view controller

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

代码:

- (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];
    }

谢谢, 普利文

2 个答案:

答案 0 :(得分:1)

您正在创建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

答案 1 :(得分:0)

你定义了两个

@property(nonatomic, retain) UIImage * image;  // (or UIImageView *)
你的.h和

中的

@synthesize image;

在你的.m?