MFMessageComposeController Issue - PullRequest
       18

MFMessageComposeController Issue

0 голосов
/ 21 марта 2012

У меня проблема с моим MFMessageComposeController. Итак, в моем приложении каждый раз, когда вы нажимаете на кнопку, появляется таблица UIActionSheet, а затем вы должны выбрать, хотите ли вы позвонить или отправить сообщение. Но каждый раз, когда я звоню, заканчиваю его и возвращаюсь в свое приложение, появляется мой MFMessageComposeController ... где может быть проблема? вот код, если это поможет

case 0 : {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString: @"tel://011212"]];
    [actionSheet dismissWithClickedButtonIndex:0 animated:NO];            
}
case 1: {
    [[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleBlackOpaque];   
}





[[UIApplication sharedApplication ] setStatusBarStyle:UIStatusBarStyleBlackOpaque];
MFMessageComposeViewController*controller =[[[MFMessageComposeViewController alloc] init] autorelease];

if ([MFMessageComposeViewController canSendText]) {

    controller.body = [NSString stringWithFormat:@"Narucio bih Oryx Taxi na lokaciju ( %@ , %@ ) .\nNaruci! aplikacija", latitudePoint.text, longitudePoint.text];



    controller.recipients = [NSArray arrayWithObjects:@"011888",nil];
    //controller.messageComposeDelegate = self;
    controller.messageComposeDelegate=self;
    controller.navigationBar.tintColor = [UIColor grayColor];

    [self presentModalViewController:controller animated:YES];

Ответы [ 3 ]

1 голос
/ 21 марта 2012

Вам нужно добавить разрыв после каждого случая в вашем операторе switch. В противном случае выполнение будет перенесено на следующий случай.

case 0 : {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString: @"tel://011212"]];
    [actionSheet dismissWithClickedButtonIndex:0 animated:NO];  
    break;          
}
case 1: {
    [[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleBlackOpaque];  
    break; 
}
0 голосов
/ 21 марта 2012

Вам нужно поставить break; после завершения каждого дела, просто чтобы убедиться, что выполнение дел, следующих за текущим делом, не происходит.

Попробуйте этот код:

case 0 : {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString: @"tel://011212"]];
    [actionSheet dismissWithClickedButtonIndex:0 animated:NO]; 
    break;
}
case 1: {
    [[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleBlackOpaque];
    break;   
}
default:
    break;


    MFMessageComposeViewController*controller =[[[MFMessageComposeViewController alloc] init] autorelease];

    if ([MFMessageComposeViewController canSendText]) {

        controller.body = [NSString stringWithFormat:@"Narucio bih Oryx Taxi na lokaciju ( %@ , %@ ) .\nNaruci! aplikacija", latitudePoint.text, longitudePoint.text];



        controller.recipients = [NSArray arrayWithObjects:@"011888",nil];
        //controller.messageComposeDelegate = self;
        controller.messageComposeDelegate=self;
        controller.navigationBar.tintColor = [UIColor grayColor];

        [self presentModalViewController:controller animated:YES];
    }

Надеюсь, это поможет вам.

0 голосов
/ 21 марта 2012

Вы не завершили оператор switch case 0, поэтому, даже если он выполняет первый случай, он всегда входит и во второй случай.Решение использует break:

case 0 : {
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString: @"tel://011212"]];
  [actionSheet dismissWithClickedButtonIndex:0 animated:NO];  
  break;          
}
case 1: {
  [[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleBlackOpaque];  
  break; 
}
...