presentViewController pas de travail en Swift
Je vous remercie pour la lecture de ce. Je voudrais avoir un fonctions Swift fichier où j'ai mis toutes les fonctions de mon projet, que les autres Swift fichiers peuvent appeler. Je suis en train de créer une fonction d'alerte dans les fonctions de fichier, lorsque je passe dans une chaîne de caractères spécifique, il affiche une alerte spécifique. Il a travaillé quand il était dans le fichier principal, mais quand je l'ai déplacé les fonctions de fichier, presentViewController me donne une erreur, en disant: "l'Utilisation de suspens identificateur 'presentViewController'." S'il vous plaît aider! Voici mon code:
dans les fonctions de fichier:
import Foundation
import UIKit
/**********************************************
Variables
***********************************************/
var canTapButton: Bool = false
var tappedAmount = 0
/**********************************************
Functions
***********************************************/
//the alert to ask the user to assess their speed
func showAlert(alert: String) -> Void
{
if(alert == "pleaseAssessAlert")
{
let pleaseAssessAlert = UIAlertController(title: "Welcome!", message: "If this is your firs time, I encourage you to use the Speed Assessment Tool (located in the menu) to figure which of you fingers is fastest!", preferredStyle: .Alert)
//ok button
let okButtonOnAlertAction = UIAlertAction(title: "Done", style: .Default)
{ (action) -> Void in
//what happens when "ok" is pressed
}
pleaseAssessAlert.addAction(okButtonOnAlertAction)
presentViewController(pleaseAssessAlert, animated: true, completion: nil)
}
else
{
println("Error calling the alert function.")
}
}
Merci!
Vous devez vous connecter pour publier un commentaire.
La
presentViewController
est la méthode d'instance de UIViewController classe. Donc vous ne pouvez pas accéder à votre fichier de fonction comme ceci.Vous devez modifier la fonction comme:
Ici, vous êtes de passage à un
UIViewController
exemple de cette fonction et l'appel de lapresentViewController
de ce point de Vue Contrôleur de classe.viewController
comme paramètre. Dans votre code, il estViewController
. Afin de vérifier s'il est correctement typé ou non (Si non, alors vous êtes en utilisant le nom de la Classe, à l'origine du problème. Changement et ça marchera)ViewController
instance de classe. appel comme :showAlert("pleaseAssessAlert", self);
si vous appelez à partir d'un ViewController classe. Vous avez besoin de copier méthode ci-dessus, ne modifiez pas laviewController
àViewController
Dans Swift 3:
La méthode
presentViewController
est remplacé parpresent
.Vous pouvez l'utiliser comme l'ancien:
Tout d'abord, vous devez vérifier votre NavigationController est appropriée ou pas?
Si Oui, alors Voici le code pour le présent et le rejeter presentviewcontroller
Pour la présentation de PresentViewController :
let next = self.storyboard?.instantiateViewControllerWithIdentifier("Your view controller identifier") as! Yourviewcontroller
self.presentViewController(next, animated: true, completion: nil)
Rejeter Presentviewcontroller
self.dismissViewControllerAnimated(true, completion: nil)
Je dirais aller avec MidHun MP méthode ci-dessus, mais, si vous êtes à la recherche d'une autre façon de le faire sans mettre en UIViewController alors: