Sto lavorando a un progetto che utilizza il sistema di tabulazioni. Uno degli elementi di tabbar è JobPostingViewController. Lo incoraggio in UINavigationController. C'è un UIButton chiamato add new job in this view controller. Ho implementato pushviewcontroller per andare a CreateJobPostViewController. Lì ho bisogno di aggiungere UIImagePickerController per scegliere l'immagine. Quando tocchi il pulsante Fatto o scelgo un'immagine dalla libreria, la disattiva su JobPostingViewController. Ma dovrebbe andare su CreateJobPostViewController. Qualcuno per favore aiutami. Grazie in anticipo.Il licenziamento di UIImagePickerController comporta la chiusura del controller della vista anche
You can see the issue from this link
Codice in JobPostingViewController
@IBAction func openCreateJob(sender: AnyObject) {
let vc = self.storyboard?.instantiateViewControllerWithIdentifier("CreateJobPostViewController") as! CreateJobPostViewController
self.navigationController?.pushViewController(vc, animated: true)
}
Codice in CreateJobPostViewController
@IBAction func addImages(sender: AnyObject) {
imagePicker.allowsEditing = false
imagePicker.sourceType = .PhotoLibrary
presentViewController(imagePicker, animated: true, completion: nil)
}
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
picker.dismissViewControllerAnimated(true, completion: nil)
}
func imagePickerControllerDidCancel(picker: UIImagePickerController) {
picker.dismissViewControllerAnimated(true, completion: nil)
}
Non ho mai visto questo problema prima. 'imagePicker' sembra già essere definito prima che venga chiamato 'addImages'. Perché? è usato altrove? C'è altro codice che funziona allo stesso tempo? Inoltre si sta chiamando 'picker.dismissViewControllerAnimated' che si supponga di chiedere al genitore (presentandoViewController) di chiudere il controller modale (ad esempio' self.dismissViewControllerAnimated') non dire al presentato di chiudersi. –
Non ha un altro senso definire imagePicker come variabile globale. Non è usato da nessuna parte. Ho provato entrambe le opzioni che suggerisci di ignorare il controller di visualizzazione del selettore di immagini. Ero stanco di trovare la soluzione e io uso un altro modo. Grazie per il tuo suggerimento. @ Simon McLoughlin – sant05
Puoi pubblicare più codice o spiegare di più il layout dell'app. Ci sono molte persone che evidenziano vari problemi e soluzioni simili. 'JobPostingViewController' è una vista container? o all'interno di una vista container? Come si apre questo schermo? quando il selettore viene rimosso, attiva i metodi 'viewWillAppear' /' viewDidAppear', 'viewDidLayoutSubviews' su' CreateJobPostViewController'. Stai facendo qualcosa dentro questi metodi? –