在UIImageView上使用UITapGestureRecognizer实例化UIViewController

时间:2012-12-12 19:53:00

标签: uiviewcontroller uiimageview uigesturerecognizer

我正在尝试创建一个包含缩略图图像列表的应用程序,这些图像一旦触摸就会创建一个新的视图控制器,其中一个大的UIImageView会从缩略图视图控制器显示所选图像。在“SmallPicsViewController”中,我有以下代码,但是,在选择图像时没有任何反应。我试图实例化的新视图控制器称为“BigPicsViewController”,它包含一个名为bigPic的UIIMageView的IBOutlet。

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

UITouch *touch = [touches anyObject];
if([[touch valueForKey:@"view"]isKindOfClass:[UIImageView class]]){

    UIImageView *viewSelected = (UIImageView *)[touch valueForKey:@"view"];

    BigPicsViewController *bigController = [[BigPicsViewController alloc]initWithNibName:@"BigPicsViewController" bundle:nil];

    bigController.bigPic = viewSelected;

    }
}

1 个答案:

答案 0 :(得分:0)

三个可能的原因:

1)根本没有调用touchesBegan方法,很可能是因为UIImageView默认情况下userInteractionEnabled设置为NO,这意味着它不会注册触摸。

2)调用该方法,但是,由于UIImageViewuserInteractionEnabled设置为NO,因此图像视图下方的视图会将其注册,因此if语句为false。

3)正如gschandler所说,你似乎没有对视图控制器做任何使它的视图出现在层次结构中的事情。

使用断点或日志语句来确定它是什么。