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{ // 나머지 버튼을 누른경우 } } }
'DEV > iOS' 카테고리의 다른 글
하이브리드 앱 개발 시 UIWebView / WKWebView에서의 처리 (0) | 2017.10.18 |
---|---|
ScrollView와 PageControl을 이용한 페이징 처리 (0) | 2014.05.06 |
NSThread를 통한 데이터 처리와 화면 제어 팁 (0) | 2014.03.09 |
NSURLConnection와 NSURLRequest를 이용해 POST데이터를 동기적으로 통신 (0) | 2014.03.09 |
NSString을 파일로 읽고 쓰기 (0) | 2014.03.09 |