2012-07-03 2 views
0

사용자가 특정 행을 선택했을 때 무언가를 수행하도록 버튼을 만들었습니다. 지금까지 나는 이것을 가지고있다 :if 문을 사용하여 UIPickerView 행을 선택했는지 감지 할 수 있습니까?

if (pickerView selectedRowInComponent:0) { 
        [mailComposerTwo setToRecipients:[NSArray arrayWithObjects:@"[email protected]",nil]]; 
       } 

그것은 독자적으로 작동한다. 하지만 if 문을 여러 번 실행하면 충돌이 발생합니다. 작동 방식

고맙습니다. 고맙습니다.

답변

0

문제는 메일 작성자가 아니라 피커보기와 관련이 있습니다. 작곡가를 보여줄 때 아직 작곡하지 않은 경우에만 작곡가를 만들어야합니다. 또한

, 당신이 그것을 보여 후에 당신이 그것을 해제해야합니다 :

MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init]; 
picker.mailComposeDelegate = self; 

...[configure the picker] 

[rootContainer presentModalViewController:picker animated:YES]; 

[picker release]; 
0
NSArray *finalList = [[NSArray alloc]init]; 
//put all your if statements 
if (pickerView selectedRowInComponent:0) 
{ 
    [finalList arrayByAddingObjectsFromArray:@[@"[email protected]",@"[email protected]",...]; 
} 
if (pickerView selectedRowInComponent:1) 
{ 
    [finalList arrayByAddingObjectsFromArray:@[@"[email protected]",@"[email protected]",...]; 
} 
//end of if statements 
[mailComposerTwo setToRecipients:finalList]; 
[self presentViewController:yourInitializedMessageController animated:YES completion:^{NSLog(@"message controller is presented");}]; 

이 지속적 어떤 이상한 이유로 예외를 발생하는 재 할당하기보다는 하나의 메소드 호출을 할 것입니다. presentModalViewController:animated:은 iOS 6.0부터 제공되지 않을 예정입니까? 7.0이 아니라면 나는 믿는다.

참고! 메시지 컨트롤러를 메인 뷰 컨트롤러의 프로퍼티로 만드십시오. iOS에서 자동으로 출시되지 않도록 백업하는 것이 좋습니다. 그러나 MFMessageComposer를 사용하면 iOS가 메신저를 할당하거나 스레드의 어딘가에서 실행되도록하여보기 컨트롤러를 초기화하는 것이 빠릅니다.