2012-01-12 3 views
0

내 응용 프로그램에 다음 코드가 있습니다. 보기 컨트롤러에서 각각 다른 작업을 수행하는 두 개의 UIButton 컨트롤이 있습니다. 첫 번째 버튼을 누르면 작업을 확인하는 UIAlertView가 있습니다. 이것은 잘 작동합니다. 같은 방법으로 두 번째 버튼을 설정했습니다. 두 번째 단추를 누르면 첫 번째 UIAlertView가 잠깐 나타난 다음 두 번째 UIAlertView가 나타납니다. 그 시점에서 문제없이 작동하지만 첫 번째 UIAlertView가 다시 나타납니다.UIAlertview가 여러 번 호출되었습니다.

UIAlertViews를 완전히 꺼내고 어떤 단추가 눌려 졌는지 나타 내기 위해 레이블을 업데이트하면 두 번째 단추가 표시되지 않으므로 UIAlertViews가 포함되도록 격리했습니다.

누구든지이 문제의 원인이되는 코드를 가리킬 수 있습니까? 여기에 코드가 있습니다.

- (IBAction)clearInspectionsClicked { 

    UIAlertView *alertClear = [[UIAlertView alloc] initWithTitle:@"Please Confirm" 
              message:@"Clear out all inspection data?" 
              delegate:self 
              cancelButtonTitle:@"Clear" 
              otherButtonTitles:@"Cancel", nil]; 
[alertClear show]; 

} 

- (IBAction)loadSampleDataClicked { 

    UIAlertView *alertLoad = [[UIAlertView alloc] initWithTitle:@"Please Confirm" 
                message:@"Load Sample data?" 
                delegate:self 
              cancelButtonTitle:@"Load" 
              otherButtonTitles:@"Cancel", nil]; 
    [alertLoad show]; 
} 


-(void) alertView:(UIAlertView*)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 
    NSString *title = [alertView buttonTitleAtIndex:buttonIndex]; 
    if ([title isEqualToString:@"Clear"]) 
    { 
     [self clearInspections]; 
     [self.StatusLabel setText:@"Inspection data has been cleared!"]; 
    } 
    if ([title isEqualToString:@"Load"]) 
    { 
     [self loadSampleData]; 
     [self.StatusLabel setText:@"Sample data has been loaded!"]; 
    } 
} 

답변

1

버튼 중 하나에 두 가지 동작이 연결되어있을 가능성이 있습니까? Interface Builder에서 하나의 주어진 컨트롤에 여러 액션을 연결하는 것이 가능합니다.

+0

UIAlertViews를 제거하고 대신보기의 레이블에 상태 메시지 만 표시하면 하나의 동작 만 호출됩니다. 그러나 디버거를 통해이를 확인합니다. 게시물을 가져 주셔서 감사합니다! –

+0

그게 전부 였어! 그 점을 지적 해 주셔서 감사합니다. 액션을보고 나서 두 번째 버튼이 두 버튼에 모두 연결되어있는 것으로 나타났습니다. 나는 잘못된 행동 링크를 삭제하고 이제는 잘 작동한다. 때로는 해결책이 생각보다 간단합니다! 다시 한 번 감사드립니다! –

관련 문제