2010-02-11 6 views
0

rightcalloutaccessoryview 단추 누르기에 새보기를 추가하고 싶습니다. 현재지도에 핀을 놓을 수있는 기능이 있습니다. 핀을 누를 때 제목, 부제목 및 갈매기 모양의 설명 선 (MKAnnotation)이로드됩니다. 셰브론 (rightcalloutaccessoryview)을 탭하면이 시점에서 더 많은 정보를 보여주는 또 다른보기가 나타납니다. 바로 지금, 쉐브론 탭은 아무것도하지 않습니다. 이것이 내가 가진 것입니다 :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"; 
    } 
} 

나는이 동작 방법이 갈매기를 누르는 즉시 호출된다는 것을 확인했습니다. 불행히도, 나는 새로운 관점을 끌어낼 수 없습니다. 누군가 내가 잘못하고있는 것을 알고 있다면 알려주십시오. 나는 약간의 핀치를 가지고있다 ...

고마워!

토마스

답변

0
-(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 개발자 포럼 (here)에서 저의 도움을 받았습니다.

관련 문제