2013-01-04 4 views
0

클라이언트를 만들고 있습니다. 계정을 선택하면 계정이 통과합니다 (segue를 통해). 그것이 어떻게하는지 알고 싶었다. obs ** 데이터 전달은 사용자가 선택한 선택기의 배열입니다. UIPickerView prepareForSegue

는 pickerview 반환

-(NSString*)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component { 
    ACAccount *acct = [arrayOfAccounts objectAtIndex:row]; 
    return [acct username]; 
} 

는 옵션 (배열)을 통과해야 계정으로 사용하는 다른보기로 사용자가 선택한을 (트위터) 내가있는 TableView 한 번 그것을 관리 (하지만 나는 끔찍한 인터페이스를 생각했다.) 그리고 pickerview를 만들기로 결정했다. 이 데이터를 전달할 때의 문제 (아래)는 테이블 뷰와 동일하지 않습니다.

답변

0

나는 당신이 맞기를 바랍니다. 설명/철자가 다소 모호합니다.

당신이 대리자 메서드를 구현해야합니다 : 나는 피커 뷰 선택에보기를 전환하는 것이 좋습니다 wouldnt가

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component 

을, 그것의 더 나은 당신이 SEGUE을 실행하는 버튼을 사용합니다. 선택 항목을 개인 속성에 저장하고 prepareForSegue:에 사용하여 다른보기 컨트롤러에 전달할 수 있습니다.

+0

나는 이미이 방법을 사용했다. (나는 영어로 말하지 않는다 : P) –

0

Segue를 사용하여 데이터를 다음보기로 전달 하시겠습니까? 나는 그것이 최선의 방법이라고 생각합니다. pickerview에서 데이터를 전달할 때, 당신의 SEGUE에서이

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

    // Make sure your segue name in storyboard is the same as this line 
    if ([[segue identifier] isEqualToString:@"moreinfosegue"]) 
    { 
     // Get reference to the destination view controller 
     NextViewController *nextViewC = [segue destinationViewController]; 
     // Pass any objects to the view controller here, like... 
     ACAccount *acct = [self.arrayOfAccounts objectAtIndex:[_yourPickerView selectedRowInComponent:0]]; 

     [nextViewC setACAccountValueInOtherView:acct]; 

    } 
} 

는 그냥 selectedRowInComponent는 당신이 UIPickerView에서 그것을 복용하고 어떤 구성 요소로 설정되어 있는지 기억 할 수 있습니다.

이 정보가 도움이되기를 바랍니다.