문제

RightCalloutAccessoryView 버튼에 새 뷰를 추가하고 싶습니다. 현재지도에 핀을 떨어 뜨릴 수있는 기능이 있습니다. 핀을 누르면 제목, 자막 및 쉐브론이있는 콜 아웃 (mkannotation)이 핀을 누르면로드됩니다. chevron (RightCalloutAccessoryView)을 탭하면이 시점에서 더 많은 정보를 보여주는 다른보기가 팝업되기를 원합니다. 지금, 쉐브론 탭은 아무것도하지 않습니다. 이것이 내가 가진 것입니다.

-(IBAction)showInfo:(id)sender 
{     
     int calloutButtonPressed = ((UIButton *)sender).tag;
     if(calloutButtonPressed < 99999)
     {
          if(self.DetailView == nil)
          {
               DetailViewController *tmpViewController = [[UIViewController alloc] initWithNibName:@"DetailView" bundle:nil];
               self.DetailView = tmpViewController;
               [tmpViewController release];
          }

          if (calloutButtonPressed == 1) 
          {
                         // Using the debugger, I found that calloutButtonPressed is equal to 0 when the button is pressed.
                         // So I'm not sure what the point of this method is...
                }
          self.DetailView.title = @"Title";
     }
 }

이 조치 방법이 쉐브론을 누르면 호출되는지 확인했습니다. 불행히도, 나는 새로운 견해를 가져 오는 것을 얻을 수 없습니다. 내가 뭘 잘못하고 있는지 아는 사람이 있으면 알려주세요. 나는 약간 핀치에 ...

감사!

도마

도움이 되었습니까?

해결책

    -(IBAction)showInfo:(id)sender 
{   
     int calloutButtonPressed = ((UIButton *)sender).tag;
     if(calloutButtonPressed < 99999)
     {
          if(self.detailView == nil)
          {
               DetailViewController *tmpViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
               self.detailView = tmpViewController;
               [tmpViewController release];
          }

          [self.navigationController pushViewController:self.detailView animated:YES];

          if (calloutButtonPressed == 0) 
          {
               // TRP - I inserted my view atIndex:99999 to ensure that it gets placed in front of all windows
               // TODO: figure a better way to do this
               [self.view insertSubview:detailView.view atIndex:99999];
          }
          self.detailView.title = @"Title";
     }

}

이 진술이 누락되었습니다.

[self.view insertSubview:detailView.view atIndex:99999];

나는 다른 방법을 찾고 싶기 때문에 그 마법 번호 (99999)를 가질 필요가 없습니다 (또한 미숙 한 것 같습니다 ...). 그래도 작동하기 때문에 너무 걱정하지 않습니다.

Apple 개발자 포럼에서 도움을 받았습니다. 여기.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top