2010-08-22 8 views
0

여러보기 컨트롤러가있는 UITabbar가 있습니다. 그 중 하나는 UITableView입니다. 테이블 뷰는 파일 소유자가 UITableViewController 인 펜촉에 저장됩니다.UITableView에 "자세히보기"추가

일단 테이블 셀을 선택하면 tableview에 "자세히보기"(UILabel 및 기타 요소가있는 사용자 정의보기)를 표시하고 싶습니다. 내 방식은 UITableView에 하위 뷰로 새로운 세부 정보 뷰를 추가하는 것이 었습니다.

[self.view addSubView:[detailsViewController view]] 

불행히도 내가 원하는 효과를 내지는 못합니다. UITableView의 하위 뷰로서 추가 된 세부 사항보기를 스크롤하고 기본 테이블 항목을 볼 수 있습니다. UINavigationBar는 옵션이지만 더 깊은 계층 구조가 없기 때문에 닫기 버튼이있는 간단한 사용자 정의보기를 선호합니다. 어떤 제안?

+0

그래서 '닫기'버튼을 포함한 팝업보기와 같은 '세부 정보보기'를 원하십니까? 또는 UINavigationController-methods를 사용하여 details-view-controller를 원하십니까? – elslooo

답변

0

UITableViewController를 UIViewController로 바꿉니다. 그런 다음보기 컨트롤러에 UITableView를 추가하십시오. 보기 컨트롤러의 테이블보기의 대리자 및 데이터 소스를 설정하십시오. 이제 스크롤하지 않는 뷰 컨트롤러에 하위 뷰를 추가 할 수 있습니다. 여전히 뷰 뷰가 있습니다. :)

편집 : 또는 popupview가 나타나면 테이블 뷰를 스크롤하지 않도록 할 수 있습니다.

[(UIScrollView *)self.view setScrollEnabled:NO]; 
CGRect rect = self.popupview.frame; 
rect.origin.y = [(UIScrollView *)self.view contentOffset].y; 
self.popupview.frame = rect; 
0

사용자가 특정 셀을 클릭 할 때 단순히 팝업 (모달보기)을 만들고 싶다면 다음을 수행하십시오.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

// If the view you want to present modally is called DetailViewController, do the following. 

DetailViewController *dvCon = [[dvCon alloc] initWithNibName:@"DetailViewController" bundle:nil]; 

UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:dvCont]; 
[self presentModalViewController:navigationController animated:YES]; 

[navigationController release]; 
[dvCont release]; 


} 

행운을 빈다.

+0

하지만 DetailViewController의 rootViewController로 돌아 오는 방법은 무엇입니까? – wagashi

+0

일반적으로 UINavigationBar에 구현 된 단추를 구현해야합니다 (따라서 UIBarButtonItem을 만들고 self.navigationItem.leftBarButton으로 설정). 단추의 선택기를 모달보기를 닫는 메서드로 설정합니다. 필요한 경우 코드로 내 대답을 업데이트 할 수 있습니다. –

관련 문제