2013-11-23 4 views
0

누군가 내 값이 UIViewController에서 UITableViewController로 전송되지 않는 이유를 말해 줄 수 있습니까? 내의 UIViewController에서값이 다음 UIViewController에 전송되지 않습니다.

나는 프로그래밍 방식으로 생성 된 버튼의 번호를 가지고 각각의 버튼은 자신의 태그 번호는 아래와 같이 설정이 : 그럼 내 prepareForSegue에 내가 버튼 태그 번호 내있는 UITableViewController의 tagVale을 설정

bySeaButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
bySeaButton.tag = 4; 
bySeaButton.frame = CGRectMake(20, 294, 280.f, 40.f); 
UIImage *seaButton = [UIImage imageNamed:@"gettingHereBySeaButton.png"]; 
[bySeaButton setBackgroundImage:seaButton forState:UIControlStateNormal]; 
[self.view addSubview:bySeaButton]; 
[bySeaButton addTarget:self action:@selector(bySeaButtonClicked) forControlEvents:UIControlEventTouchUpInside]; 

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    MyTableViewController *vc = [[MyTableViewController alloc] init]; 
    vc.tagNumber = bySeaButton.tag; 
} 

여기 NSLog는 vc.tagNumber가 buttons 태그 번호로 설정되었음을 보여줍니다. 그러나 UITableViewController의 tagNumber 값에 액세스하면 항상 0으로 설정됩니다. 아래 코드는 tagNumber가 @property (nonatomic, assign) int tagNumber;로 UITableViewController의 .m에 선언 된 방법입니다.

NSString *strFromInt = [NSString stringWithFormat:@"%d", self.tagNumber]; 

이것의 출력은 항상 0 - 무관 버튼 태그 값

답변

1

의 후 타겟이 방법을 추가 preparesegue에서 스토리 보드

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
    { 

     MyTableViewController *vc = segue.destinationViewController; 

     vc.tagNumber = bySeaButton.tag; 
    } 
0

제 선언 SEGUE ID가이 코드를 시도

[self performSegueWithIdentifier:@"push segue id" sender:self]; 


- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
    { 
     if ([[segue identifier] isEqualToString:@"push segue id"]) 
    { 
     MyTableViewController *vc = [segue destinationViewControlle]; 

     vc.tagNumber = bySeaButton.tag; 
    } 
    } 
관련 문제