web-dev-qa-db-fra.com

Présentation et suppression d'une vue modale dans iOS 7

J'ai un contrôleur de vue qui a un bouton dessus. Le bouton est la politique de confidentialité. Quand il est cliqué, il va à l'IBAction appropriée et je crée le contrôleur de confidentialité.

 - IBAction ...
{
    PrivacyPolicyViewController *privacy = [[PrivacyPolicyViewController alloc] init];
    .....
}

Je veux créer une vue modale du contrôleur de confidentialité qui a une UIWebView qui s'anime vers le haut et un bouton de retour pour le fermer dans ios 7. Les façons dont je vois en ligne sont toutes ios 6 et semblent obsolètes.

11
cdub

Utilisez quelque chose comme ceci:

// assuming your controller has identifier "privacy" in the Storyboard
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
PrivacyPolicyViewController *privacy = (PrivacyPolicyViewController*)[storyboard instantiateViewControllerWithIdentifier:@"privacy"];

// present
[self presentViewController:privacy animated:YES completion:nil];

// dismiss
[self dismissViewControllerAnimated:YES completion:nil];
47
Jano

[self presentmodalviewcontroller:vc]; a été obsolète.

vous pouvez essayer

[self presentViewController:viewController animated:YES completion:nil];

cela fonctionnera pour vous ..

9
creative_rd

Si vous utilisez des storyboards, vous pouvez également utiliser un enchaînement pour présenter un contrôleur de vue modale et le faire par programme.

  1. Dans votre storyboard, ctrl + faites glisser de l'icône du propriétaire du fichier dans la barre sous la vue de départ vers la vue que vous souhaitez présenter de façon modale, lâchez-la et sélectionnez "modal".
  2. cliquez sur l'icône segue, puis dans l'inspecteur d'attributs, donnez-lui un identifiant, comme "toNewView".
  3. dans le fichier .m de votre contrôleur de vue de départ, utilisez ce code pour effectuer la séquence modale: [self performSegueWithIdentifier:@"toNewView" sender:self];

C'est une manière propre et agréable de le faire car vous n'avez pas besoin d'importer un fichier .h pour instancier le deuxième objet contrôleur pour la méthode presentViewController.

Pour le rejeter, il vous suffit d'utiliser un se détendre segue .

6
inorganik
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
taskQueeDetails *privacy = (taskQueeDetails*)[storyboard instantiateViewControllerWithIdentifier:@"taskQueeDetails"];

// Present the modal
[self presentViewController:privacy animated:YES completion:nil];

utilisez le code et changez la chaîne instantiateViewControllerWithIdentifier: @ "taskQueeDetails"]; ça marchera bien

0
NRV