Swift popToViewController
Bonne journée les gars, je suis d'apprentissage Rapide, besoin d'un peu d'aide ici.
L'utilisateur de signer et choisi leur image. Sur rejetant le sélecteur d'images, je voudrais avoir la ComposeViewController apparaissent.
Voici le code:
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: NSDictionary!) {
let pickedImage:UIImage = info.objectForKey(UIImagePickerControllerOriginalImage) as UIImage
//Scale Down Image
let scaledImage = self.scaleImageWith(pickedImage, and: CGSizeMake(100,100))
let imageData = UIImagePNGRepresentation(scaledImage)
let imageFile:PFFile = PFFile(data: imageData)
PFUser.currentUser().setObject(imageFile, forKey: "profileImage")
PFUser.currentUser().saveInBackgroundWithTarget(nil, selector: nil)
picker.dismissViewControllerAnimated(true, completion: nil)
//this is the line seems to have problem.
self.navigationController?.popToViewController(ComposeViewController, animated: true)
}
Puis j'ai ces erreurs:
ComposeViewController.Type " n'est pas convertible 'UIViewController
Attendue nom du membre ou de l'appel du constructeur après le nom du type de
Il a la suggestion de corrigé en mettant () après ComposeViewController mais ensuite il donne plus d'erreurs après la fixation.
Espère que quelqu'un pouvait l'aider. Merci! 🙂
- Bienvenue DONC!: Mais quelle est exactement votre question/problème? Obtenez-vous un message d'erreur? Est-ce que votre ComposeViewController n'apparaît pas? (merci d'éditer votre question, et ajouter cette information)
- Merci Frank! Je vais prendre note de la prochaine fois. 🙂
Vous devez vous connecter pour publier un commentaire.
Je sais que c'est vieux, mais c'est comme ce Saqib dit, vous ne pouvez pas sauter à un viewcontroller qui n'existe pas encore.
Un grand nombre de réponses ici semblent être des gens qui n'ont pas lu votre question, juste le titre. Je vais laisser ce code ici au cas où il permet à quiconque.
Il y a une méthode qui vous permet d'accéder à un tableau de tous les ViewControllers sur la pile actuelle, et vous pouvez capturer celui que vous souhaitez à l'aide de son index, par exemple:
J'ai fini par replaceing le code suivant à l'intérieur de la vue principale, et cela fonctionne. Je ne sais pas si c'est la bonne façon, cela vous dérangerait de me donner des commentaires?
J'ai défini "vue2" comme destination storyboard ID.
Ce que j'ai trouvé plus utile était de faire une
first
recherche avecviewControllers
, de cette façon, vous obtenez le premier cas, vous trouver dans la pile, sans avoir à deviner l'indice réel.par exemple
manette de navigation maintient la pile de vues vous sont en train de pousser. C'est comme un Dernier entré-premier sorti de la file d'attente.
Afin de pop à ComposeViewController, ce point de vue doit déjà exister dans la file d'attente et vous devriez avoir une référence.
Vous aurez besoin de passer de l'instance de ComposeViewController. pour plus de simplicité vous pouvez enregistrer cette référence dans appdelegate. (cette approche n'est pas recommandée)
Dans Swift 4.1 et Xcode 9.4.1
Supposons que si vous avez déplacé à partir du 1er ViewController à la 2e, puis la 2ème à la 3ème. Maintenant, si vous voulez revenir à partir de la 3ème à la 1ère directement ce code est assez.