2011-12-26 5 views
0

피커 뷰의 행 구성 요소가 선택되면 뷰로 이동합니다. 거기에 버튼 changeGroup.On 단추를 클릭하면 피커 뷰가 나타나야합니다. 그러나 그것은 일어나지 않습니다! 이것은 피커 뷰 버튼의 동작이 나타날 것입니다선택기 동작이 충돌하는 피커보기

- (void)viewDidLoad 
{ 
groupArr = [[[NSMutableArray alloc]initWithObjects:@"Family",@"Friends",@"Office",@"Acquaintances", nil]autorelease]; 
    agrpPicker.hidden = YES; 
} 

#pragma mark- 
#pragma mark PickerView Datasource 

-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView 
{ 
    int number = 0; 

    if (agrpPicker.hidden == NO) 
    { 
     number = 1; 
    } 

    return number; 
} 
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component 
{ 
    int count = 0; 
    if (agrpPicker.hidden == NO) 
    { 
     count = [self.groupArr count]; 
    } 
    return count; 
} 

#pragma mark- 
#pragma mark PickerView Delegate 

-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component 
{ 
    NSString *str = [[[NSString alloc]init]autorelease]; 

    if (agrpPicker.hidden == NO) 
    { 
     str = [self.groupArr objectAtIndex:row]; 
    } 

    return str; 
} 

: 그 다음은

충돌은 내 코드입니다

-(IBAction)groupButtonSelceted:(id)sender 
{ 
    [UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationDuration:0.6]; 
    CGAffineTransform transfrom = CGAffineTransformMakeTranslation(0, 200); 
    agrpPicker.transform = transfrom; 
    [UIView commitAnimations]; 
    agrpPicker.hidden = [agrpPicker isHidden] ? NO : YES; 
    [self.view addSubview:agrpPicker]; 
} 

을 연결하는 IB의 피커 뷰 현재까지 피커보기 .

enter image description here

수있는 전문가 포인트 : 여기

그것이

enter image description here

콘솔에서

추락있어 곳의 스크린 샷, 메시지는 아래의 스냅 샷으로 나타납니다 내가 어디로 잘못 갔는지 나와 밖으로 나와 ....

당신의 소중한 제안을 도와주세요. 덕분에 미리 :

죄송합니다 사람, 나는 그것이 오토 릴리즈되면 내가 대신, 배열을 유지하지 않은 실수 무엇인지 발견 :

groupArr = [[[있는 NSMutableArray의 ALLOC] initWithObjects : @ "Family", @ "Friends", @ "Office", @ "Acquaintances", nil] autorelease];

그것은 self.groupArr = ....입니다. 볼 모든 사람과 문제 :

+0

여기서도 오류 로그를 넣을 수 있습니까? – rishi

+0

@rishi 예 Mr.Rishi, 명확한 이해를위한 스냅 샷을 배치했습니다, 미리 감사드립니다 편집 된 답변을 참조하십시오 :) –

+0

스크린 샷에 따르면 메모리 문제, 비 할당 된 오브젝트에 대한 참조처럼 보입니다. 콘솔 로그에도 아무 것도 없습니까? – rishi

답변

1

당신의 groupArr 배열이 자동 해제 때문에 contant를 잃어 버리고 있습니다. 그래서 이것을 바꿔라.

groupArr = [[NSMutableArray alloc] initWithObjects : @ "가족", "친구", @ "사무실", @ "지인", nil];

[groupArr retain];

+0

대답 주셔서 감사하지만 어쨌든 그것을 사용하여 고정했습니다 자기 .groupArr = [[NSMutableArray alloc] initWithObjects : @ "Family", @ "Friends", @ "Office", @ "Acquaintances", nil]; –

+0

재로드 피커 뷰. 이 코드를 사용합니다 [agrpPicker reloadAllComponents]; 버튼을 눌렀을 때 – kulss

+0

감사합니다. 감사합니다. –

0

가 .H 파일에 UIPickerViewDelegate 추가 고정에 기여 사람들

감사합니다.

.m 파일에서 PickerView 대리자 및 데이터 소스 메서드를 추가하십시오. 데이터 소스 :

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView; 
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component; 

대표 : 자세한 내용은

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

애플에서 UIPickerView class를 참조하십시오.

+0

편집 된 질문 (게시물)을 참조하십시오 해결책을 주셔서 감사합니다 어쨌든 대답을 주셔서 감사합니다 :) –