Un UITabBarController
viene spinto sulla pila:Modifica pulsante non visualizzato in di UITabBarController MoreNavigationController
let presenter = presentingViewController as! UINavigationController
let tabvc = UITabBarController()
tabvc.viewControllers = vcs
tabvc.customizableViewControllers = vcs
presenter.pushViewController(tabvc, animated: true)
Una volta presentato il pulsante più scheda mostra in modo corretto, ma il pulsante Modifica per riorganizzare la scheda bar non lo fa. Secondo il docs on the MoreNavigationController:
L'interfaccia per i più oggetto di serie comprende un pulsante Modifica che consente all'utente di riconfigurare la barra delle schede. Per impostazione predefinita, l'utente è autorizzato a riorganizzare tutti gli elementi sulla barra delle schede. Se non si desidera che l'utente di modifichi alcuni elementi, è tuttavia possibile rimuovere i controller di vista appropriati dall'array nella proprietà customizableViewControllers .
La mia ipotesi è che la barra delle schede non è felice di essere in un controller di navigazione. Qualche idea su come riportare il pulsante di modifica?
Qualsiasi motivo per cui è necessario utilizzare un controller di navigazione per contenere il controller della barra delle schede?Come hai notato, penso che questo potrebbe essere il tuo problema. Meglio sarebbe presentare il controller della barra delle schede modally usando 'presentViewController', che è supportato secondo i documenti. –
@RoryMcKinnel: Risposta per ** memmons **, è una situazione comune con applicazioni che richiedono, ad esempio, un * login * o un * onboarding *. Si inizia con un controller di navigazione e in un secondo momento si deve passare a un controller della barra delle linguette. – SwiftArchitect
@SwiftArchitect Ricevo il caso d'uso, ma è possibile implementare una serie di modi che si adattano meglio a come i controller di contenitori amano lavorare. Da qui il mio commento sul fatto che debba essere davvero spinto da un controller nav, dato che presentarlo in modo modesto probabilmente risolverebbe il problema. Come descritto molto bene nella tua risposta 8 ^). –