【问题标题】:Interact with a view controller from another view controller从另一个视图控制器与视图控制器交互
【发布时间】:2011-05-18 05:16:15
【问题描述】:

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

代码:

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

谢谢, 普拉文

【问题讨论】:

    标签: iphone uiviewcontroller view controller


    【解决方案1】:

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

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

    但也许您正在测试一些东西并在笔尖中设置了一个图像,只是想确保它有效。在这种情况下,photo.mainView.image 未设置的原因是因为您只创建了视图控制器,但尚未从 nib 加载和设置视图。要伪造这一点,您需要在检查图像是否已设置之前访问控制器的 view 属性。

    iPhotoViewController *photo = [[iPhotoViewController alloc] initWithNibName:@"iPhotoViewController" bundle:nil] ;
    
    [photo view];
    if (photo.mainView.image) {
    // continue as before
    

    【讨论】:

      【解决方案2】:

      你都定义了吗

      @property(nonatomic, retain) UIImage * image;  // (or UIImageView *)
      

      在你的 .h 和

      @synthesize image;
      

      在你的 .m 中?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-17
        • 1970-01-01
        • 2023-03-11
        相关资源
        最近更新 更多