RightCalloutAccessoryView 버튼에 새 뷰를 추가합니다
-
19-09-2019 - |
문제
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 개발자 포럼에서 도움을 받았습니다. 여기.
제휴하지 않습니다 StackOverflow