我有一个充满名字的ViewController,基本上是一个联系人列表。当您触摸其中一个名称时,您将看到一个包含信息的详细信息屏幕:名称,组织,建筑物,电话号码,电子邮件等。它使用导航控制器,因此您可以返回电话簿。
我的应用程序中有一个自定义地图(基本上是一张图片,有几个图层和一个图钉,可以显示你在图片上的位置)。我想实现这一点,当有人触摸建筑物UILabel时,我的MapViewController会带有一些参数。它是一个简单的UILabel,但包含有用的信息,如15 / A建筑物。我有建筑物的确切x,y坐标。
我的主要问题是我真的不知道如何在UILabel上设置触摸事件并使用参数转到新的视图控制器。
我想我需要在mapviewcontroller中创建新的启动方法,以便能够获取参数并显示它们。
总结一下:如何使用触摸事件导航到其他视图控制器,如何使用参数启动该视图控制器。重要的是,我可以从菜单中找到没有任何建筑物参数的地图。
任何帮助表示赞赏。
答案 0 :(得分:3)
或者,您也可以在标签上添加隐藏按钮。此按钮将处理触摸事件。
答案 1 :(得分:1)
使用点按手势
UITapGestureRecognizer * tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(labelTapped)];
tapGestureRecognizer.numberOfTapsRequired = 1;
[myLabel addGestureRecognizer:tapGestureRecognizer];
myLabel.userInteractionEnabled = YES;
答案 2 :(得分:0)
//Create a Tap Gesture and set it on your Label.
UILabel *yourLabel=[[UILabel alloc]initWithFrame:CGRectMake(0, 0, 320, 50)];
[yourLabel setTextColor:[UIColor blackColor]];
[yourLabel setTextAlignment:NSTextAlignmentCenter];
[yourLabel setText:@"Address"];
[self.view addSubview:yourLabel];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(TapGestureRecognizerLabel:)];
[tap setNumberOfTouchesRequired:1];
[yourLabel addGestureRecognizer:tap];
-(void)TapGestureRecognizerLabel:(UIGestureRecognizer *)gestureRecognizer
{
[self.navigationController pushViewController:targetControllerObj animated:YES];
}