2013-04-17 1 views
1

사용자가 tableView 셀 중 하나를 선택할 때 상세보기로 이동하는 tableView가 있습니다. 이 메인 TableView는 UITableViewController 클래스에서 생성됩니다. (MasterViewController)보기가 테이블 뷰를 탐색 할 때 사라지는 superview에 추가되었습니다.

StoryBoard를 사용하여 마스터 세부 테이블 뷰를 생성했습니다.

내 MasterViewController 내에서 사용자가 대상 단추를 선택할 때 주 tableView 맨 위에 tableView를 놓습니다. 이 두 번째 tableView 사용자가이 목록에서 여러 값을 선택할 수 있습니다.

첫 번째 (주) tableView 스크롤 할 때이 두 번째 tableView 화면에서 스크롤 방지하려면이 두 번째 tableView MasterViewController보기 superView 추가했습니다.

그래서 MasterViewController에서 TableViewController (_toController)를 추가합니다. UIView (_toView)를 인스턴스화하고 배경 이미지 (_toViewBG)를 추가 한 다음 TableView (_toTableView)를 추가합니다. 그런 다음 _toView (이 두 번째 tableView 포함) MasterViewController보기의 superview 추가하십시오.

_toController = [[ToTableViewController alloc] init]; 
_toView = [[UIView alloc] initWithFrame:CGRectMake(10,10,263,247)]; 

_toViewBG = [[UIImageView alloc] initWithFrame:CGRectMake(10,10,257,232)]; 
_toViewBG.image = [UIImage imageNamed:@"toViewBackground.png"]; 

[_toView addSubview:_toViewBG]; 

_toTableView = [[UITableView alloc] initWithFrame:CGRectMake(20,30,220,180) style:UITableViewStylePlain]; 

[_toTableView setDelegate:_toController]; 
[_toTableView setDataSource:_toController]; 
[_toView addSubview:_toTableView]; 

[self.view.superview addSubview:_toView]; 
[_toTableView reloadData]; 

이 방법을 사용하면 주 tableView를 스크롤 할 때 두 번째 tableView가 스크롤되지 않습니다. 두 번째 tableView 주요 tableView 스크롤 같이 자리에 남아 있습니다.

기본 TableView에서 셀을 선택하면 상세보기로 이동합니다. 주 TableView로 돌아 가면 두 번째 TableView (_toView)를 표시 할 수 없습니다.

_toView 앞에 오는 방법을 모르겠습니다. MasterViewController 뷰의 수퍼 뷰에 추가되었음을 알았습니다. 어떤 실험에서,이 superview는 CALayer 인 것처럼 보입니다.

아무도 내가이 _toView MasterViewController보기 앞에 표시 얻을 것이라고 제안 할 수 있습니까?

미리 도움을 청하십시오.

해결 두 번째 tableview를 MasterViewController보기의 하위보기로 추가했습니다. [self.view addSubview : _toView]; 그런 다음 두 번째 테이블 뷰가 표시되는 동안 주 테이블 뷰에서 스크롤을 비활성화했습니다.

Self.tableView.scrollEnabled = No; 

잘 작동하는 것 같습니다.

답변

1

[self.view.superview bringSubviewToFront:_toView]를 호출하여이 작업을 할 수도 있지만, 내 충고는 MasterViewControllerUIViewController보다는 UITableViewController의 서브 클래스를 만들 수, 다음 루트의 파단로 UITableView 객체의 모두를 추가 보기 (보다는 superview를 참조하십시오).

+0

의견에 감사드립니다. 나는 이전에 성공하지 않고 첫 번째 제안을 시도했다. MasterViewController UITableViewController 유지하려면 사용자 지정 셀 서식을 만들 때 UIRefreshControl 테이블 뷰 새로 고침을 허용 할 추가 할 등 기대했다. 그것은 상당한 양의 UIViewController 변경할 작업 것이라고 가정합니다. –

+0

그다지 효과가 없어야합니다.UIViewController에 tableView라는 UITableView @ 속성을 추가하고 init 메서드의 속성을 초기화해야합니다. 그 외에는 모든 것이 이전과 같이 작동해야합니다. – ganzogo

+0

감사합니다. 시도 해보고 작동하는지 알려 드리겠습니다. 도움을 감사하십시오. –

관련 문제