2012-05-22 5 views
0

이 유틸리티 앱의보기 컨트롤러 클래스 (UITableViewController의 하위 클래스)는 4 개의 테이블보기를 표시하는 데 사용되며 그 중 3 개는 네비게이션 컨트롤러를 통해 입력됩니다. 스토리 보드에서 스타일은 으로 설정되었습니다.
질문 : 프로그래밍 방식으로 Style Plain으로 변경하여 색인을 사용하고 일부 화면 공간을 비워 색인을 표시 할 수 있습니까? 나는 이것을 수정하기 위해 다른 SO 질문에 대한 제안을 시도했지만 성공하지 못한 채 initviewDidLoad에 수정했습니다.프로그래밍 방식으로 UITableViewStyle 및 셀 변경 -

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.navigationItem.title = self.title; 

    if ([[self parentViewController] isKindOfClass:[UITabBarController class]]) { 
     [self getNewDataForDate:nil]; 
     self.tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; 
    } 
} 

편집 1 : 실제 문제는 위의 코드를 벗어납니다. 스토리 보드의 '스타일'을 변경하면 프로토 타입 셀 (그룹화 된 상태로 표시됨)을 사용하여 테이블 뷰를 생성 할 때 코드에 다른 모드가 필요합니다. 여기 있니?

Assertion failure in -[UITableView _createPreparedCellForGlobalRow:withIndexPath:] 

답변

1

는 테이블 뷰를 초기화 할 때 테이블 스타일을 설정 (initWithFrame를 참조하십시오 : 스타일 :

static NSString *CellIdentifier = @"ListCell"; 
DetailTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

결과는이 오류입니다. 그 이후에는 스타일을 수정할 수 없습니다. (이것은 Apple's documentation에서입니다).

+0

코드에서 테이블 뷰를 수정 (초기화)하지 않는 것 같습니다. 그리고 그 문서에서 그 방법을 찾을 수 없습니다. 좀 더 빛을 빌려주시겠습니까? – David

+0

직접 메서드를 사용하고 있습니다. self.tableView = [[UITableView alloc] initWithFrame : CGRectZero style : UITableViewStyleGrouped]; – melsam

+0

좋아, 나는 그 줄이'평야 '이고 지금 (위에서 편집 된)'- [UITableView _createPreparedCellForGlobalRow : withIndexPath :]'와 함께 어설 션 오류를 던지고 있음을 의미했다. 그룹화 된 프로토 타입 셀이있는 동적 테이블 일 수 있습니까? 중단 점에서, tableview는 유형이 Plain입니다. – David

관련 문제