2011-08-23 13 views

답변

12

시도 UITableView'sselectRowAtIndexPath:animated:scrollPosition: 메서드입니다. 당신이 대리인 콜백을 원하는 경우에

- (void)viewDidLoad { 
    [self.tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] animated:NO scrollPosition:UITableViewScrollPositionNone]; 
} 

, 수동으로 호출해야합니다 :

if ([self.tableView.delegate respondsToSelector:@selector(tableView:didSelectRowAtIndexPath:)]) 
    [self.tableView.delegate tableView:self.tableView didSelectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]]; 

당신은 아마 다음, 로컬 변수에 해당 인덱스 경로를 캐시 할 것입니다.

1

행을 선택하려면 인 인스턴스 메서드를 사용하여 UITableView 행을 선택합니다.

하지만 왜 이것을 viewDidLoad에서하고 싶습니까?

+0

viewDidLoad (viewDidAppear : 역시 작동)에서이를 수행하면보기가로드 될 때 사용자가 첫 번째 행을 볼 수 있습니다. – FeifanZ

+0

'viewWillAppear :'또는'viewDidAppear :'이 더 좋은 옵션이라고 생각합니다. 내가 물었던 이유는 UITableView가'viewDidLoad' 메쏘드의 데이터 소스로부터 데이터를로드한다고 생각하지 않기 때문입니다. (당신이'viewDidLoad' 구현 내에서 명시 적으로'reloadData'를 호출하지 않는다면). –

+1

in 문 안에서 수행하고 싶습니다. 즉, 하나의 결과 만 tableView에 게시되면 선택됩니다. 더 많은 것이 있으면 수동으로 선택해야합니다. 당신이 테이블 뷰의 데이터 소스를 제어하기 때문에 1. 당신은 당신의 데이터 소스에 직접 게시 된 행의 수를 확인할 수 있습니다, 또는 2. 당신이 사용할 수있는 jQuery과의'-numberOfSections'와'-numberOfRowsInSection : – Baub

관련 문제