2012-07-29 4 views
-1

요점은 사용자 정의 셀이 있고 그 안에 2 개의 레이블과 1 개의 텍스트 필드가 있습니다. 라벨과 텍스트 필드 모두 사용자로부터 입력을받습니다. 나는 또한 그 안에 uitableview가 다른보기가 있습니다. 내 질문에 어떻게 내가 uitableview에 세포를 채울 수 있습니까? 도와주세요.셀을 사용하여 tableview를 채우려면 어떻게해야합니까?

내 tableviewcontroller 내 코드입니다.

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    return 1; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return 1; // i want to populate this using 'count' but i dont know how. 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:[CustomCell reuseIdentifier]]; 
    if (cell == nil) 
    { 
     [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil]; 
     cell = _customCell; 
     _customCell = nil; 
    }  
    cell.titleLabel.text = [NSString stringWithFormat:@"%@",titleTextString]; 
    cell.timerLabel.text = [NSString stringWithFormat:@"%@",timerString]; 
    cell.statusLabel.text = [NSString stringWithFormat:@"%@",statusString]; 

    return cell;  
} 

사용자가 입력을 완료 한 후 추가 버튼을 누르면 어떻게하면 내 tableview가 채워 집니까? 제발 코드에 도움이되지 않으면 제발. 나는 초보자이고 나는 이해하기가 어렵다.

답변

1

질문을 올바르게 이해했다면 2 UILabelUITextField이있는 셀에 대한 사용자 지정 nib 파일을 작성한 다음 테이블을 채울 때이 개체에 액세스하려고합니다. 이 문제에 대한 몇 가지 단계는 다음과 같습니다.

먼저 사용자 지정 셀의 각 개체에 tag 번호를 부여해야합니다. 이 속성은 Interface Builder의 속성 검사기에서 찾을 수 있습니다. 첫 번째 레이블 태그 1, 두 번째 레이블 2 및 텍스트 필드 3을 지정했다고 가정 해보십시오.

두 번째로 a. 이 nib 파일의 식별자입니다 (예 : MyCustomCellIdentifier). 이 식별자는 테이블이있는 뷰에서 나중에 사용되어 링크 할 수 있습니다.

세 번째로 사용자 정의 셀 펜촉에서도 파일 소유자를 나타내는 노란색 사각형을 클릭하고 ID 검사기에서 클래스를이 사용자 정의 셀을 사용할 테이블이있는 클래스 이름으로 변경합니다.

넷째, 사용자 지정 셀을 사용할 테이블이있는 클래스에서 UITableViewCell 유형의 콘센트를 만듭니다. 우리는 이것을 custom nib cell에 링크 할 것입니다.

다섯째, 맞춤형 펜촉 셀을 클릭하고 셀 창을 클릭 한 다음 연결 검사기 링크의 새 참조 아웃렛을 파일 소유자에게 연결하면 여기에 표시된 테이블 클래스에서 만든 콘센트가 표시됩니다. 그것. 이제 연결이 일을 설립하고 있기 때문에

다음과 같이 당신이 nib 파일에서 사용자 정의 셀을로드 할 수 있습니다 (확실히 테이블이 포함 된 클래스)를 cellForRowAtIndexPath 기능에 더 쉽게 :

static NSString *tableIdentifier = @"MyCustomCellIdentifier"; 
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:tableIdentifier]; 
if(cell == nil) 
{ 
    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"TheNibClassNameOfYourCustomCell" owner:self options:nil]; 
    if([nib count] > 0) cell = theNameOfTheOutletYouUsed; 
    else NSLog(@"Failed to load from nib file."); 
} 

UILabel *label1 = (UILabel *)[cell viewWithTag:1]; 
UILabel *label2 = (UILabel *)[cell viewWithTag:2]; 
UITextField *textField1 = (UITextField *)[cell viewWithTag:3]; 

이제, label1 통해을 모두 액세스 할 수 있습니다

확인은 사용자 정의 셀은 이제 사용자가 만든 태그에서의 모든 개체에 액세스 할 수 있고, 변수 cell에로드및 textField1은 쉽게 같음 label1.text = @"Hi";

이 질문에 대한 답변을 바랍니다.

+0

답장을 보내 주셔서 감사합니다. 그러나 numberOfRowsInSection 안에 무엇을 써야합니까? 내 말은, 어떻게하면 "추가"버튼을 누르면 tableview에서 내 세포를 채울 수 있습니다. – SyntaxError

+0

일반적으로 새 데이터를 모두 푸시 할 NSMutableArray가 있으므로 추가 버튼을 클릭 할 때마다 해당 배열에 새 데이터가 추가됩니다. 그러므로 배열의 크기를 보통'numberOfRowsInSection'에서 사용할 수 있습니다.이 경우'[yourArray count];'또한 행 데이터가 혼합 된 것이면'NSMutableDictionary'를 대신 사용할 수 있습니다. – antf

+0

음 ...죄송합니다, cellForRowAtIndexPath 안에 무엇을 써야합니까? 내가 배열을 반환 numberOfRowsInSection 내 배열을 넣어 [배열 개수]; 하지만 그 cellForRowAtIndexPath 내부에 무엇을 추가해야합니까? 고맙습니다. – SyntaxError

관련 문제