2013-02-13 6 views
1

나와 내 친구가 앱에서 작업 중이지만 우리는 완전히 초보자이지만 책과 고글로 먼 길을왔다.알림보기에서 IBaction 호출하기

우리는 이제이 일에 매달 렸습니다. 우리는이 동작으로 명확한 단추가 연결된 texfield를 가지고 있지만 경고보기 단추 중 하나에서 "예"를 클릭하면 해당 동작을 호출하기를 원합니다.

- (IBAction)clearText:(id)sender { 

Spelare1Slag1.text = @""; 
Spelare1Slag2.text = @""; 

}

우리는 또한이 경고보기가 : 그래서 우리는 우리가 그것을해야한다고 생각하는 방법이다

 alertDialog = [[UIAlertView alloc] 
    initWithTitle: @"Warning" 
    message: @"Do you want to delete?" 
    delegate: self 
    cancelButtonTitle: @"No" 
    otherButtonTitles: @"Yes", nil]; 

- (void)alertView: (UIAlertView *)alertView 
clickedButtonAtIndex:(NSInteger)buttonIndex { 
    NSString *buttonTitle=[alertView buttonTitleAtIndex:buttonIndex]; 
    if ([buttonTitle isEqualToString:@"No"]) { 
    } 

    else if ([buttonTitle isEqualToString:@"Yes"]){ 
     Spelare1Slag1.text = @""; 
    } 

}

을하지만, 우리는 무엇을 모른다 else if 문을 넣으십시오. 경고보기에서 "예"버튼을 누를 때 텍스트 필드를 지우고 "아니오"를 누르지 않을 때 텍스트 필드를 지우고 싶습니다.

미리 감사드립니다.

답변

2

일반 텍스트처럼 이렇게 확실하지 않은 경우, NO 인덱스 0 또는 1을 가지고 있는지 확인해야합니다 수 메서드, 나는 두 필드의 텍스트를 삭제하기 위해 만든 사용자 지정 메서드라고 가정합니다.

- (void)clearText { 
Spelare1Slag1.text = @""; 
Spelare1Slag2.text = @""; 
} 

지금 당신은 당신의 UIAlertView의 위임 방법으로 할 필요가 일반 텍스트 메서드를 호출 할 수 있습니다 : : 희망이 도움이

- (void)alertView: (UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { 
NSString *buttonTitle=[alertView buttonTitleAtIndex:buttonIndex]; 
    if ([buttonTitle isEqualToString:@"Yes"]){ 
     [self clearText]; 
    } 
} 

그래서 대신이 IBAction를 인, 그것은 빈 공간 방법이어야한다

+0

이것은 유망 해 보입니다. 내일 볼 예정입니다. 집에 없습니다. – Laymachine

+0

해결했습니다. 감사합니다! – Laymachine

2

사용자가 NO을 클릭 한 경우 AlertView을 닫을 수 있습니다. 질문을 제대로 이해하면 가능합니다.

[alertView dismissWithClickedButtonIndex:0 animated:YES]; 

같은 alertview을 기각하지만 다음 그냥이

[alertView dismissWithClickedButtonIndex:nil animated:YES]; 
1

IBAction 유형의 메소드는 다른 메소드와 같으며 코드에서 직접 호출 할 수 있습니다. 실제로 IBAction은 단순히 매크로로 void으로 평가됩니다. 일반적으로 대상/액션 이벤트의 컨텍스트 외부에서 호출되어야 할 경우 nil 보낸 사람 인수를 전달합니다.

[self clearText:nil]; 
1

실제 버튼 텍스트를 확인해야하는 이유는 무엇입니까? 버튼 인덱스를 확인하는 것이 가장 효율적인 방법입니다. alertView에 두 개의 입력란이있는 경우 색인이 0 또는 1인지 확인하고 갈 수 있습니다. 실제 텍스트를 확인하면서 추가 작업을하고 있습니다.

그리고 btw, 아니오를 누르면 특정 작업을 수행 할 필요가 없다면 YES 버튼의 색인을 확인하십시오. (필요하지 않으면 두 인덱스를 모두 확인하지 마십시오.)