2014-11-25 38 views
0

我有一个带有完整名称的ViewController,基本上是一个联系人列表。当您触摸其中一个名称时,您将看到一个包含以下信息的详细信息屏幕:名称,组织,建筑物,电话号码,电子邮件等。它使用导航控制器,以便您可以返回到电话簿。通过触摸UILabel打开另一个ViewController

我在我的应用程序中的自定义地图(基本上是一幅画,用数层,用针,这表明你,你是在哪里画)。我想实现这个目标,当有人触摸建筑物UILabel时,它会带着一些参数进入我的MapViewController。这是一个简单的UILabel,但包含有用的信息,例如15/A建筑物。我有建筑物的确切x,y坐标。

我的主要问题是,我真的不知道如何设置触摸事件上的UILabel,去到一个新的视图控制器,用参数。

我想我需要在我的mapviewcontroller中使新的启动方法能够获取参数并显示它们。

所以总结:我怎么能导航与触摸事件的其他视图控制器,我怎么能启动与参数视图控制器。我的菜单中没有任何建筑物参数也能够到达我的地图,这一点很重要。

任何帮助表示赞赏。

+0

在UILable场所使用按钮 – 2014-11-25 10:31:01

+0

我觉得庵埠是正确的...你也可以使用点触手势(可能是在工作的UILabel)。 – 2014-11-25 10:36:27

回答

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]; 
} 
+0

谢谢,它的工作原理,它打开我的另一个ViewController,但是当它时,我只能看到一个灰色的背景。我认为这是特定的应用程序,但有关于此的任何特定想法?我现在尝试没有任何参数,但是我的地图图片只有灰色背景。如果我从菜单中打开地图,那就OK了。 – Daniel 2014-11-25 11:01:59

+0

好吧,我想通了,而不是使用[self.navigationController pushViewController:targetControllerObj animated:YES];我做了一个新的segue并使用这个[self performSegueWithIdentifier:@“fromContactToMap”sender:self] ;.它使我能够用 - (void)prepareForSegue做准备:(UIStoryboardSegue *)segue sender:(id)sender;方法。谢谢你的帮助!! – Daniel 2014-11-25 11:34:32

+0

是的,你是对的,你总是受欢迎。 – Monikanta 2014-11-25 11:36:59

1

使用自来水手势对于它

UITapGestureRecognizer * tapGestureRecognizer = [[UITapGestureRecognizer的alloc] initWithTarget:自动作:@selector(labelTapped)];

tapGestureRecognizer.numberOfTapsRequired = 1;

[myLabel addGestureRecognizer:tapGestureRecognizer];

myLabel.userInteractionEnabled = YES;

3

或者,您也可以在标签上添加隐藏按钮。该按钮将处理触摸事件。

相关问题