2012-08-16 3 views
1

나는 [PickerView didSelectRow:(NSInteger)row inComponent(NSInteger)component을 기반으로보기]ios uibarbuttonitem을 푸시/선택했는지 확인하는 방법은 무엇입니까?

내가 하이라이트 및 선택 로직 내가 지금 필요한 것은 선택 버튼 뷰를로드 눌 렸는지 여부를 결정하는 단지 간단한 방법입니다, 알아 낸를로드해야합니다.

이것이 가능합니까? 당신은 내가가는 것을 볼 수 있도록 예를 들어

,

if (/* select button is pressed */) 
{ 
    //push selected view onto stack. 
} 

업데이트 여기

, 내가 코드를 게시 할 수 있습니다. nib 파일을 통해 대부분의 설정을했습니다.

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

    /* 
    //do simple error checking to ensure nothing badly crazy happens 

    if(row > [mPickerMenuItems count]) 
    { 
     NSLog(@"Row index is out of bounds of mPickerMenuItems length in [Overview pickerView:(UIPickerView*) didSelectRow:(NSInteger) inComponent:(NSInteger)]...bailing out"); 

     return; 
    } 
    else if(row < 0) 
    { 
     NSLog(@"Row index is negative in [Overview pickerView:(UIPickerView*) didSelectRow:(NSInteger) inComponent:(NSInteger)]...bailing out."); 

     return; 
    } 
    */ 

    NSString* selected = [_pickerMenuItems objectAtIndex:row]; 

    //NSLog(@"(in [Overview pickerView: didSelectRow]) resultLabel.text => %@", mResultLabel.description); 

    if([selected isEqualToString:@"My Profile"]) 
    { 

     if (/* select button is pressed */) 
     { 
      //push view onto stack. 
     } 

     NSLog(@"My Profile has been selected"); 
    } 
    else if([selected isEqualToString:@"Services"]) 
    { 

     NSLog(@"Services has been selected"); 
    } 
    else if([selected isEqualToString:@"Tools"]) 
    { 

     NSLog(@"Tools has been selected"); 
    } 
    else if([selected isEqualToString:@"Media"]) 
    { 

     NSLog(@"Media has been selected"); 
    } 
    else 
    { 
     NSLog(@"Nothing has been selected in [Overview pickerView: didSelectRow]"); 
    } 
} 

업데이트 2

혼란을 드려 죄송합니다. 내가 말하고자하는 것은 에 강조 표시된 항목을 기반으로 UIBarButtonItem이 선택되는 즉시보기 전환을 실행하고 싶다는 것입니다. 나는 내가 가지고있는 메서드를 사용하는 것의 자연스러운 선택으로 갔다면 if-else 다 보내고, 선택 버튼을 눌렀을 때 전환하고로드 할 것입니다.

어떻게 처리하나요?

답변

2

타겟을 추가하기 만하면됩니까? 또는 나는 무엇인가 놓치고 있냐? 특정 물체가 선택기보기 slected 때

UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithTitle:@"My Bar Button" style:UIBarButtonItemStyleBordered target:self action:@selector(MYMETHOD)]; 
+0

여기서 내 코드를 업데이트하여 의미를 알 수 있습니다. – zeboidlund

+0

나는 아직도 길을 잃었습니다. 당신이하고있는 일에 대해 조금 더 설명하여 게시물을 업데이트 할 수 있습니까? 선택 버튼을 만든 경우에는 대상 만 있으면됩니다. –

+0

단추를 선택하고 연결 관리자로 이동하여 "이벤트 전송"아래의 원 중 하나에서 이벤트가 발생할 때 호출 할 메서드로 드래그하여 xib를 통해 대상을 설정할 수 있습니다. (일반적으로 Touch Up Inside 이벤트를 사용합니다.) 표시되는 경우 서클에서 헤더 파일로 드래그 할 수도 있으며, 이벤트를 수신 할 수있는 새로운 방법을 만듭니다. 꽤 매끄러운, IMO. – livingtech

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

호출된다.

_pickerview가 선택기보기의 데이터 소스라고 가정하면 선택한 색인을 기반으로하는보기를로드 할 수 있습니다.

if(indexPath.row == x){ 
//Code to bring up the view controller 
} 

귀하의 질문은 혼란스럽고 명확하지 않습니다. 그 질문을 잘 답변하거나 달성하고자하는 것이 무엇인지 분명히하는 경우

+0

질문을 다시 업데이트했습니다. 죄송합니다. – zeboidlund

+0

설명에 기반하여 실제로는 명확하지 않으므로 원하는 사진을 사용해보십시오. – LostPuppy

관련 문제