2014-11-25 45 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

或者,您也可以在標籤上添加隱藏按鈕。該按鈕將處理觸摸事件。

相關問題