2013-05-11 7 views
0

Я использую JTRevealSidebar от Github. У меня проблема, когда я нажал на ячейку на левой боковой панели (Обратная связь), я хочу открыть MailComposer. MailComposer открыт, но только внутри левой боковой панели. Кто-нибудь может мне помочь?MailComposer открыт на боковой панели

enter code here 

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    /*if (self.sidebarDelegate) { 
     NSObject *object = [NSString stringWithFormat:@"ViewController%d", indexPath.row]; 
     [self.sidebarDelegate sidebarViewController:self didSelectObject:object atIndexPath:indexPath]; 
    }*/ 

    if(indexPath.section == 0){ 
     if(indexPath.row == 1){ // Feedback{ 
      MFMailComposeViewController *mailController = [[MFMailComposeViewController alloc] init]; 
      mailController.mailComposeDelegate = self; 

      [mailController setSubject:@"Feedback für testapp"]; 
      // Fill out the email body tex 
      NSString *emailBody = [NSString stringWithFormat:@"\n\n\n\nApp: %@ \n App-Version: %@ \nModel: %@ \n Version: %@", 
            @"TestApp", 
            [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"], 
            [UIDevice currentDevice].model, 
            [UIDevice currentDevice].systemVersion]; 
      [mailController setMessageBody:emailBody isHTML:NO]; 
      [mailController setToRecipients:[NSArray arrayWithObjects:@"[email protected]",nil]]; 

      dispatch_async(dispatch_get_main_queue(), ^{ 
       // whatever code you want to run on the main thread 
       [self presentModalViewController:mailController animated:YES]; 
      }); 

     } 
    } 

} 

ответ

1

Прежде всего, вы должны закрыть диспетчер просмотра, в котором находитесь. Это связано с тем, что боковая панель является диспетчером просмотра самостоятельно. Затем подайте mailController, чтобы он показывался в центральном диспетчере просмотра.

Изменение кода:

dispatch_async(dispatch_get_main_queue(), ^{ 
[self dismissModalViewController]; 
[self presentModalViewController:mailController animated:YES]; 
}); 

Используйте вместо этого:

[self dismissViewControllerAnimated:YES completion:nil]; 
+0

Я вижу эту ошибку ... ошибка: нет видимых @interface для 'SidebarViewController' объявляет селектор 'dismissModalViewController' [self rejectModalViewController]; Я тестирую его с помощью этого решения, но у меня такая же проблема: [self rejectModalViewControllerAnimated: NO]; – NoBody

+0

отредактировал ответ – lakesh

Смежные вопросы