2012-04-16 1 views
0

I는 탐색 컨트롤러가 ....과의 tableview 그래서 같은UINavigationController 형제보기에 어떻게 도달합니까?

상품 A>
상품 B>
아이템 C>
아이템 D> A의>

클릭
약도 표 셀을 사용하면 물론 항목 X에 대한 상세보기로 이동합니다. 지도보기는 항목 A-D의 정확한 위치를 보여줍니다. 주석 설명 선에 공개 버튼이 있습니다. 나는이 시점에서 무엇을 하시겠습니까 무엇

[self.navigationController popViewControllerAnimated:true]; 
//Now what??? 

지도보기 터지는 후 항목 X에 대한 상세보기를 밀어 수 있습니다 : 공시 버튼 코드는 않습니다. 이 작업을 수행하는 적절한 방법은 무엇입니까?

+1

오, 세상에 ... 내가 그것을 알아 냈다고 생각합니다. 공개 버튼에 대한 델리게이트를지도보기 컨트롤러가 아닌 표보기 컨트롤러로 설정해야합니까? 이봐. – Bryan

답변

0

자랑스럽지 않습니다. 이,하지만 ... 나는 해결책을 찾았다. 필자는 tableview를 설정하는 데 사용 된 배열의 인덱스를 기반으로 개별 주석에 대한 태그 값을 설정했습니다.

-(void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control { 
//So, we clicked that disclosure button 
//TODO: This is really hacky... What is proper way to do this? 
ServicesViewController *vc = [self.navigationController.viewControllers objectAtIndex:1]; 
[vc infoButtonPressed:control.tag]; 

은} 이제 ServicesViewController에서 우리는이 작업을 수행 할 수 있습니다

- (void) infoButtonPressed:(NSInteger) index { 

// decided against this first step, as graver's answer explains, it does not really make sense 
//[self.navigationController popViewControllerAnimated:false]; 

//index should be nav array index we want to push 
//so simulate a table-row click 
[self tableView:self.tableView didSelectRowAtIndexPath:[NSIndexPath indexPathForRow:index inSection:0]]; 

가}

0

접근 방법이 잘못되었습니다. 당신은 테이블보기가 있습니다

항목 A를>은 DetailsView (A)
항목 B> (당신이 세부 항목 B보기 밀어 클릭)은 DetailsView (B)
(당신이 세부 항목 A의 볼 밀어 클릭 할 때) 세부 사항보기 (D)
지도> (클릭하면지도보기가 눌러집니다.) 세부 사항보기 (D)
지도보기)지도보기> (공개 버튼을 클릭하면 해당 항목에 대해 DetailsView를 밀고 한 단계 더 이동해야 함)

+0

응답을 감사하지만 내가 묻고있는 것은 아닙니다! 나는 그것을 이해했다고 생각한다. 내 원래의 의견은 어느 정도 대답 해 주었고 나는 게시 할 것이다. – Bryan

+0

그러나 ... 필요한 행동이 잘못되었다는 것에 동의합니다. 사용자가 설명하는 동작은 표준 iOS UI 규칙과 일치합니다. 그것은 사양이 요구 한 것이 아닙니다. – Bryan

관련 문제