내 응용 프로그램에 다음 코드가 있습니다. 보기 컨트롤러에서 각각 다른 작업을 수행하는 두 개의 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!"];
}
}
UIAlertViews를 제거하고 대신보기의 레이블에 상태 메시지 만 표시하면 하나의 동작 만 호출됩니다. 그러나 디버거를 통해이를 확인합니다. 게시물을 가져 주셔서 감사합니다! –
그게 전부 였어! 그 점을 지적 해 주셔서 감사합니다. 액션을보고 나서 두 번째 버튼이 두 버튼에 모두 연결되어있는 것으로 나타났습니다. 나는 잘못된 행동 링크를 삭제하고 이제는 잘 작동한다. 때로는 해결책이 생각보다 간단합니다! 다시 한 번 감사드립니다! –