2011-02-05 2 views
0

검색 한 결과이 작업을 수행하는 방법을 찾지 못했습니다. 그것은 내가 아직 완전히하고있는 것을 정말로 알지 못하지만 도움이되기를 바랍니다.UITableView에 데이터/행 추가하기 (하나의보기에서 여러 테이블 사용)

iPad 응용 프로그램을 만들고 있습니다. 간단히 말해 하나의보기에서 스플릿 (실행)을 수행하는 복잡한 스톱워치입니다.

저는 마스터 시계와 분리 된 5 개의 버튼이 있습니다. 작동하는 모든 것. 그러나 이러한 분할을 기록하려고하며 스크롤 할 수있는 테이블에서이를 수행하는 것이 좋을 것이라고 생각했습니다.

하나의보기에 5 개의 UITableView가 있습니다. "데이터 소스 프로토콜"을 위해 온라인에서 물건을 발견하고 단 한 테이블만으로 모든 것이 잘 작동하도록했습니다. 각각의 테이블에 대해 개별적으로 작동 시키려고 할 때 상황이 허술해졌습니다. 또한 간단한 작업을위한 많은 코드처럼 보였습니다.

나는 5 개의 가변 배열이 이미 있습니다. 나는 정말로 이것에 관해 가야하는지 모른다. 그리고 어떤 도움이라도 위대 할 것이다!

또한 가능한 경우 버튼 누르기로 표를 정리해야합니다 ... 간단하지만 사실은 알 수 없습니다.

감사합니다. UITableViewDataSource를 들어

: 이러한 방법으로

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 

답변

2

당신은 구현하는 클래스에 모든 테이블 다음 방법에 대한 UITableViewDelegate 및 UITableViewDataSource를 설정해야 호출 테이블 뷰를 통과하면 문제가있는 테이블 뷰에 대한 올바른 데이터를 반환하는 것이 쉬워야합니다 (이미 stori입니다). NSMutableArray에서 ng). 배열에 대해 다른 콘텐츠를 표시해야하지만 여전히 그렇게 할 수있을 것이라고 확신합니다. NSIndexPath는 기본적으로 배열의 어느 부분을 표시해야하는지 알려줍니다.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"MyNiceIdentifier"; 
    cell = [aTableView dequeueReusableCellWithIdentifier:NavigationCellIdentifier]; 

    if (cell == nil) { 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; 
     cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 
     cell.selectionStyle = UITableViewCellSelectionStyleNone; 
     cell.tag = 500; 
    } 

    cell.textLabel = [myArray objectAtIndex:indexPath.row]; 
} 

다른 데이터 소스에서 : 당신이 그룹화되지 않은 테이블에서 작동하는지, 당신이 간단한 새로운 세포를 생성하고 indexPath에 의해 결정되는 배열의 내용으로 채울 것입니다, 지금, 가정 그 배열 방법, 당신은 간단한 반환 카운트 :

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    if(tableView == myFirstTableView) { 
     return [myFirstArray count]; 
    } 
} 

당신이 가능성이 가장 자주 사용하는 UITableViewDelegate의 방법은 이것이다 : 당신이 반환에 사용

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 

지정된 indexPath의 셀의 바람직한 높이

설정 데이터 소스와 대표는 일만큼 간단하다 :

myTableView.delegate = ... 
myTableView.dataSource = ... 

이 문서를 참조하십시오 : http://developer.apple.com/library/ios/#documentation/uikit/reference/UITableViewDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intf/UITableViewDelegate

이 문서를 참조하십시오 : http://developer.apple.com/library/ios/#documentation/uikit/reference/UITableViewDataSource_Protocol/Reference/Reference.html

+0

응답 주셔서 감사합니다. 그러나 각 테이블에 대해이를 구현하는 방법을 모르겠습니다.내가 시도하고 두 번째 테이블이 첫 번째를 모방. "*"의 의미는 무엇입니까? 도움에 감사드립니다. – motoxrider365

+0

cell.textLabel = [myArray objectAtIndex : indexPath.row]; <- 이것은 테이블을 구별 할 필요가있는 곳입니다. 어떤 테이블이 메소드를 호출하는지에 따라 조건부로 데이터를 반환해야합니다 (예 : if-then, switch 또는 유사한 것을 사용). 또는 dataSource 역할을하고 각 테이블에 대해 위임하는 객체를 만들 수도 있습니다. *는 변수가 메모리 주소에 대한 포인터임을 나타냅니다 (예 : NSArray * myArray가 NSArray를 가리킴). –

관련 문제