2013-03-08 2 views
2

그래서 UIView의 일부를 구성하는 UIImageView에 UIButton을 임베드했습니다.performSegueWithIdentfier를 UIView 내에서 수행하는 방법

[self performSegueWithIdentifier:@"SegueToMoreInfo"];

을 나는 오류가 발생하지만 :

버튼의 선택이 실행해야 할 메소드를 호출 'myclassname'선택기를 선언하기위한 인터페이스에서 눈에 띄는 '을 performSegueWithIdentifier'.

기본적으로 UIView 내에서 segue를 수행해야합니다. 가능하지 않다면 대신 UIViewController에서 어떻게 호출합니까?

편집 : MORE INFO :

//adding button 
UIButton *attractionButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
[attractionButton addTarget:self 
      action:@selector(buttonClicked:) 
      forControlEvents:UIControlEventTouchUpInside]; 
[attractionButton setTitle:@"Attraction Info" forState:UIControlStateNormal]; 
attractionButton.frame = CGRectMake(80.0, 80, 160.0, 40.0); 
[_image1 addSubview:attractionButton]; 

내 방법 :

(IBAction)buttonClicked:(id)sender 
{ 
    [self performSegueWithIdentifier:@"SegueToMoreInfo" sender:sender]; 
} 
+0

그 코드는 어디에 있습니까? 어떤 반에서? 이 클래스는 UIViewController의 하위 클래스입니까? – Spectravideo328

+0

그것은 내가 작동하지 않는 이유라고 생각하는 UIView의 하위 클래스에 앉아 있습니다. 여기에서 할 수 있는지 알아야합니다. – CreativeAbyss

답변

1
[self performSegueWithIdentifier:@"aseguename" sender:self]; 

가있는 UIViewController 방법입니다. 그래서이 오류가 발생합니다. 또한보기는 프로토콜을 통하지 않고 ViewController와 대화해서는 안됩니다.

이렇게 말한 후에, 당신은 잘못된 방향으로 가고 있습니다. 버튼 및 다른 UIView 객체에 대한 IBActions는 ViewController에 있어야합니다. 따라서 IBAction을 View Controller로 이동하고 거기에서 버튼에 연결합니다. 그런 다음 해당 IBAction에 코드를 삽입하십시오.

코드 게시 후 업데이트 : 게시 된 코드는 모두 View Controller에 있어야합니다. 난 그냥 바꿀 것 :

[_image1 addSubview:attractionButton]; 

[self.view addSubview:attractionButton]; 

에 또는 당신이 정말로 그 버튼이 이미지에 하위 뷰가 되길 원한다면, 당신은 당신의 코드를 남길 수 있습니다, 단지 함께 IBOutlet 속성을 만들어야합니다 인터페이스 빌더의 이미지에서 View Controller로 이미지를 가져 와서 _image1이라고합니다.

희망 하시겠습니까?

+0

좋아, 고마워.이 줄에 뭔가있을 거라 생각 했어. – CreativeAbyss