2016-03-16 6 views
0

Dans mon code, je veux ouvrir un contrôleur de vue en tant que presentviewcontroller à l'aide de la feuille d'actions. mais quand je clique sur le bouton de la vue de la feuille d'action ne vient pas mais c'est le code s'exécute.PresentViewController ne fonctionne pas sur le bouton de la feuille d'action

Voici le code Invoquer le feuille d'action:

// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 

UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"" 
                 delegate:self 
               cancelButtonTitle:@"Cancel" 
              destructiveButtonTitle:nil 
               otherButtonTitles:@"Print Full Report",@"Print Only Selected Questions", nil]; 

//Creating Attributed String with System Font size of 30.0f 
NSAttributedString *attrString = [[NSAttributedString alloc] initWithString:@"Print Options" attributes:@{NSFontAttributeName: [UIFont systemFontOfSize:20.0f] , NSForegroundColorAttributeName : [UIColor grayColor]}]; 

//Accessing the Alert View Controller property from Action Sheet 
UIAlertController *alertController = [actionSheet valueForKey:@"_alertController"]; 

//Setting Attributed Title property of Alert View Controller 
[alertController setValue:attrString forKey:@"_attributedTitle"]; 

[actionSheet showInView:self.view]; 
actionSheet.tag = 100; 

Et voici le délégué et les méthodes associées:

- (void)actionSheet:(UIActionSheet *)popup clickedButtonAtIndex:(NSInteger)buttonIndex { 
    // tag 1 = save options. 2 = clear options 
    switch (buttonIndex) { 

     case 0: 
      [popup dismissWithClickedButtonIndex:0 animated:YES]; 
      pdfFlag=1; 
      [self printReportAction]; 
      break; 
     case 1: 
      [popup dismissWithClickedButtonIndex:1 animated:YES]; 
      pdfFlag=2; 
      [self printReportAction]; 
      break; 

    } 
} 

-(void)printReportAction{ 
    [self presentViewController:previewer animated:YES completion:nil]; 
} 
+0

Code formaté pour les normes et la lisibilité. –

Répondre

0

avez-vous contrôleur initialisées à présenter?

le cas échéant, pour vérifier VC présent non nul supprimer ces appels:

[popup dismissWithClickedButtonIndex:0 animated:YES]; 
-1

Il pourrait y avoir plusieurs raisons pour lesquelles le code ne fonctionne pas. Cependant, les feuilles ActionSheet ont été dépréciées dans iOS 8.3. Je suggère d'utiliser UIAlertController à la place. L'utilisation d'un UIAlertController vous permet d'utiliser des blocs, ce qui facilite le suivi des problèmes.

J'ai simulé un exemple de projet qui recrée ce que vous essayez d'accomplir. https://github.com/andyast/ActionSheetTest

+0

Ceci n'essaie pas de répondre à la question et devrait être posté comme commentaire. – rmaddy