2013-02-19 3 views
-1

DetailViewController을 사용하는 동안 값이 UITabelViewController에서 전달되지 않지만 코드에 문제가 있습니까?detailview 컨트롤러 값이 표시되지 않음

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

detailedvu *dvController = [[detailedvu alloc] initWithNibName:@"detailedvu" bundle:[NSBundle mainBundle]]; 
if (0 == indexPath.row) 
{ 
    NSLog(@"0"); 
    dvController.lb1.text = @"Make"; 
} 
[self.navigationController pushViewController:dvController animated:YES]; 
} 

제발 도와주세요.

+0

코드에 무슨 일이 일어나고 있는지 잘 설명하지 못했습니다. BTW 클래스 이름을 대문자로 지정해야합니다. – RubenVot

+0

post dvController.h –

답변

2

dvcontroller 올바르게 인스턴스화됩니다. 여기서 문제는 lbl은 펜촉에서 레이블입니다. (그래서) viewcontroller에 푸시 될 때 새로운 인스턴스가 만들어 지므로 여기에 아무런 의미가 없습니다.

는있는 NSString 같은 데이터 홀더 패스를하고 detailedvu

한 가지 제안의 viewdidLoad의 라벨을로드 : 가독성

해피 코딩을 이름 지정 규칙을 따라야보십시오 :

2

이것을 사용하여 이것을 얻을 수 있습니다.

detailedvu.h 파일에서 문자열 변수 속성을 만듭니다

@property (strong, nonatomic) NSString * str; 

그리고 detailedvu.m 파일

이 추가를 :
@synthesize str; 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    if (str.length!=0) { 
     NSLog(@"hi%@",str); 
     lb1.text=str; 
    } 
} 

그리고이 코드를 넣어 테이블 벤처하는 .m 파일에

:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

detailedvu *dvController = [[detailedvu alloc] initWithNibName:@"detailedvu" bundle:[NSBundle mainBundle]]; 
if (0 == indexPath.row) 
{ 
    NSLog(@"0"); 
    dvController.str = @"Make"; 
} 
[self.navigationController pushViewController:dvController animated:YES]; 
} 
관련 문제