UIAlertView는 간단한 앱을 만드는 경우 굉장히 자주 사용하는(?)요소 중 하나라고 생각하는데, 생각보다 UIAlertView를 한번 사용하려면 입력할 정보가 굉장히 많다.


게다가 UIAlertView자체를 구분해야되거나 버튼마다 다른 기능을 집어넣어줘야하는 경우, 더 복잡해지게된다. 

그럴땐 클래스를 따로 빼버리고 아래와 같은 처리를 해서 쉽게 만들어 쓰자 


   
-(void)alertView_Set:(NSString *)mesg withTaget:(id)delegate andTag:(int)tag withExtraButton:(NSArray *)buttons{
    UIAlertView *artView = [[UIAlertView alloc]
                            initWithTitle:@"타이틀" message:mesg delegate:delegate cancelButtonTitle:@"확인" otherButtonTitles:nil];
    
    // 입력받은 값을 Message , Delegate에 넣어준다. 
    // 해당 함수를 현재 AlertView를 띄울 뷰가 아닌 별도의 클래스로 분리할 경우 
    // Delegate를 넘겨주어야 한다. 

    // 추가 버튼이 필요하다면 버튼을 추가한다
    for(int idx = 0 ; idx < (int)[buttons count] ; idx++){
        [artView addButtonWithTitle:[buttons objectAtIndex:idx]];
    }
    
    // 태그를 주어 태그를 입력한다.
    [artView setTag:tag];
    [artView show];
}


위의 방법으로 별도로 분리해서 사용하면 한번에 tag, delegate 버튼추가를 해줄 수 있다. 태그 구분 및 버튼 구분은 해당 뷰컨트롤러의 헤더 파일에 UIAlertViewDelegate를 추가해준 후 아래와 같은 코드를 삽입하면된다.


-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
    // Delegate 내장 함수 
    if([alertView tag] == 0){
        // AlertView의 태그가 0인 경우 
        if(buttonIndex == 0){
             // AlertView에서 첫번째 버튼을 누른경우
        }
        else{
             // 나머지 버튼을 누른경우 
        }
    }
}

+ Recent posts