Ho un TableViewController
e vorrei attivare un seguito all'interno della barra di navigazione. Ho creato il seguito nello storyboard al mio nuovo ViewController
. Tuttavia se faccio clic sulla voce del pulsante della barra, la vista non viene visualizzata.ViewController non viene visualizzato nonostante siano stati attivati i passaggi successivi
Invece la voce del pulsante della barra diventa inattiva (in grigio) e l'app si blocca. Non ci sono messaggi di errore e l'app non si arresta in modo anomalo. Il metodo prepareForSegue
nel mio TableViewController
anche viene chiamato
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
print("prepare for segue called")
print("destination view controller = \(segue.destinationViewController.description)")
}
Ho fatto le seguenti cose:
- ha creato una classe Controller visualizzazione personalizzata per il secondo schermo (nel mio storyboard e come un file .swift). Ho assegnato il rispettivo
ViewController
nello storyboard al mio controller di visualizzazione personalizzato in Identity inspector - creato un
IBAction
per un evento click sul pulsante e attivato i passaggi in modo programmatico. Il risultato rimane lo stesso.prepareForSegue
viene chiamato. IldestionationViewController
è corretto ma non viene visualizzato. Ho rimosso questoIBAction
in seguito.
La mia destinazione controller di vista assomiglia a questo
class EnterUserDataViewController : UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
print("EnterUserDataViewController viewDidLoad called")
}
}
viewDidLoad
non viene mai chiamato anche se la segue a destra è stato attivato.
Qualcuno può darmi un suggerimento sul perché questo accade?
I tuoi screenshot corrispondono ancora al tuo codice attuale? Si dice che si sta manualmente attivando il seguito utilizzando una presa azione, ma le schermate mostrano che il pulsante della barra delle schede attiva direttamente il seguito. – tebs1200
No, ho pensato che avrei potuto fare qualcosa di sbagliato. Quindi ho provato ad attivare i passaggi in modo programmatico. Così ho creato un IBAction e chiamato performSegueWithIdentifier. Tuttavia questo non ha aiutato. Così ho eliminato IBAction e ho usato un normale "trascinamento della selezione". Per anser la tua domanda: sì. – slashburn
Qualche aggiornamento su questo problema? Sei stato in grado di risolverlo? @slashburn –