2015-01-07 2 views
0

버튼을 클릭 할 때 tableview 텍스트 필드 값을 얻었습니다. 많은 시도를했지만 가치를 얻을 수 없습니다. 나 항상 여기 버튼에
클릭에 루프 실행에 대해,이 null 값을 인쇄의 내 코드하지만이 코드는 IOS 7 simulater에서 일하고 있지만 IOS 작업 (8)는 나에게Tableview의 iOS 텍스트 필드 for 루프의 값이 ios 7에서 작동하지 않지만 iOS 8에서 작동 함

for (int k=0; k< aryModifier.count; k++) { 
     // NSLog(@"--%d",i); 
     NSIndexPath *indexPath = [NSIndexPath indexPathForRow:k inSection:0]; 
     UITableViewCell *cell = [[self tbl_itemModifier] cellForRowAtIndexPath:indexPath]; 
     UITextField *getTextView = (UITextField*)[cell.contentView viewWithTag:200]; 

     //for (UIView *subView in cell.subviews) 
     for (UIView *subView in cell.contentView.subviews) 
     { 
      if ([subView isKindOfClass:[UITextField class]]) 
      { 
       UITextField *txtField = (UITextField *)subView; 
       NSLog(@"%@",txtField.text); 
      } 
     } 

     //UITextField *getTextView = (UITextField*)[cell.contentView viewWithTag:i]; 

     NSLog(@"%@",getTextView.text); 
    } 

도와주세요 표 Cellforrow되지 않는다 인덱스 경로에서

UITextField *txt=[[UITextField alloc]initWithFrame:CGRectMake(180, 40, 50, 15)]; 
      txt.text = @"1"; 
      txt.textAlignment = NSTextAlignmentCenter; 
      txt.font=[UIFont systemFontOfSize:12]; 
      txt.textColor = [UIColor blackColor]; 
      txt.tag = 200;//indexPath.row; 
      txt.delegate = self; 
      NSString *str = txt.text; 
      [cell addSubview:txt]; 

y는 양방향이지만 성공하지 못합니다. 당신이 어떤 데모 링크가 있다면 나와 함께 공유하시기 바랍니다 ...

//for (UIView *subView in cell.subviews) 
      for (UIView *subView in cell.contentView.subviews) 

나에게 해결책을주십시오 ......... 를 도와주세요

답변

0

변경 :

UITextField *getTextView = (UITextField*)[cell.contentView viewWithTag:200]; 

희망

UITextField *getTextView = (UITextField*)[cell viewWithTag:200]; 

방법이 ..

을하는 데 도움이
1

접근하면 '여러 가지 문제가 있습니다 다시 사용 :

  1. tableView:cellForRowAtIndexPath:에 새 컨트롤을 만드는 것은 좋지 않습니다. 적절한 MVC는 해당 생성을 UITableViewCellinit 또는 initWithCoder: 메소드로 이동하도록 지시합니다. tableView:cellForRowAtIndexPath: 메서드에서 수행하면 해당 셀을 재활용 할 때 여러 컨트롤이 셀에 추가되는 결과를 초래할 가능성이 큽니다. 이 방법은 뷰 계층 생성/관리가 아닌 구성 셀에만 사용됩니다.
  2. UITableViewCell 개체를 반복하는 것은 좋지 않은 생각입니다. 그 이유는 iOS가 디스플레이 용으로 UITableViewCell 인스턴스를 생성 할 때 적극적으로 메모리 소비를 관리하기 때문입니다. 가능한 한 자주 세포를 재활용합니다. 따라서 많은 셀이있는 테이블 뷰가있는 경우 특정 시점에 그 중 일부만 사용할 수 있습니다. 외부 데이터 소스를 사용하여 테이블 뷰에서 셀을 채우는 데 사용하는 데이터를 제공해야합니다. 또한이 데이터를 사용하여 UITableViewCell의 컨트롤에 의존하지 않고 필요한 데이터를 가져와야합니다.

몇 가지 질문이 있습니다.
- 현재 어떻게 세포를 채우고 있습니까?
- 셀에 표시된 다른 데이터가 있습니까? 아니면 UITextField 인스턴스의 스크롤링 집합입니까?
- 기본적으로 스크롤 가능한 형식입니까?

  1. UITableView를 사용하지 마십시오 :

    폼을 구현하기 위해 노력하고 (제공되는 제한된 증거 기준) 가정

    , 여기에 내 제안입니다. 나는 그것이 키보드 쇼/숨기기를 잘 처리하고 (때로는) 선택한 컨트롤에 자동 스크롤을 제공하기 때문에 유혹을 느낀다. 그러나 둥근 구멍에 사각형의 펙을 맞추려고 시도하고있다. UITableView이하는 일이 아닙니다. 대신 양식을 올바르게 구현하는 방법을 UIScrollView에 알아보십시오. 특히, "전체 자동 레이아웃 구현"방법론을 채택했을 때이 점이 훨씬 쉽게되었습니다. 처음에는 설정하는 것이 조금 더 복잡하지만 더 잘 작동하고 자신과 같은 작업을보다 논리적으로 만듭니다.
  2. 을 사용해야하는 경우 UITableView을 채우는 데 사용되는 별도의 데이터 소스로 즉석에서 데이터를 유지하는 방법을 찾아보십시오.이렇게하면 셀을 재활용 할 때 올바른 데이터로 새로 고칠 수 있으며 입력 한 데이터에 액세스해야 할 때 UITableViewCell 인스턴스 (비교적 "비싸다")를 반복 할 필요가 없습니다. 코드의 라인 아래
관련 문제