If statement 如何使用if语句检测已选择的UIPickerView行

If statement 如何使用if语句检测已选择的UIPickerView行,if-statement,xcode4.2,uipickerview,If Statement,Xcode4.2,Uipickerview,我制作了一个按钮,这样当用户按下按钮并选择某一行时,它就会做一些事情。 到目前为止,我有: if (pickerView selectedRowInComponent:0) { [mailComposerTwo setToRecipients:[NSArray arrayWithObjects:@"email@blah.com",nil]]; } 它自己工作。但是当我多次执行if语句时,它崩溃了。 一个让它工作的方法 感谢

我制作了一个按钮,这样当用户按下按钮并选择某一行时,它就会做一些事情。 到目前为止,我有:

if (pickerView selectedRowInComponent:0) {
                    [mailComposerTwo setToRecipients:[NSArray arrayWithObjects:@"email@blah.com",nil]];
                }
它自己工作。但是当我多次执行if语句时,它崩溃了。 一个让它工作的方法


感谢您的帮助,thanx。

问题可能在于您的邮件生成器,而不是选择器视图。在显示作曲家时,请确保仅在尚未创建作曲家时才创建它

此外,请确保在显示后将其释放:

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

...[configure the picker]

[rootContainer presentModalViewController:picker animated:YES];

[picker release];
这将执行单个方法调用,而不是不断地重新分配,因为某些奇怪的原因导致了异常。presentModalViewController:animated:从iOS 6.0开始就被弃用了吗?如果不是7.0,我相信

注意!使消息控制器成为主视图控制器的属性。这是一个很好的实践,如果你需要把它带回来,它不会被iOS自动发布。但是,如果您使用MFMessageComposer,iOS将使messenger在某个线程中分配或运行,因此为其初始化视图控制器很快

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