Cómo usar un UISplitViewController en Swift
Entonces agrego unUISplitViewController
a un proyecto que está incrustado con unUITabBarController
.
losUISplitViewController
tiene unUINavigationController
como una relación Master & Detail con su propio controlador raíz.
El maestroUINavigationController
rootController
tiene un detalle segue al DetalleUINavigationController
.
Mira aquí:
Todo bastante simple ¿verdad? Ahora en TableViewController hago lo siguiente;
class TableViewController: TableViewController, UISplitViewControllerDelegate {
var collapseDetailViewController: Bool = false
override func viewDidLoad() {
super.viewDidLoad()
splitViewController?.delegate = self
}
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
collapseDetailViewController = false
}
// MARK: - UISplitViewControllerDelegate
func splitViewController(splitViewController: UISplitViewController, collapseSecondaryViewController secondaryViewController: UIViewController, ontoPrimaryViewController primaryViewController: UIViewController) -> Bool {
return false
}
También tengo una extensión UISplitViewController y hago lo siguiente;
extension UISplitViewController: UISplitViewControllerDelegate {
public override func viewDidLoad() {
self.extendedLayoutIncludesOpaqueBars = true
}
}
Con todo esto hecho, me salen los siguientes problemas;
Al tocartableviewcell
para pasar a la vista de detalle, la vista de detalle se abre dentro del panel izquierdo maestro cuando está en iPad en horizontal en lugar de la derecha. Tampoco puedo entender cómo mostrar la Vista maestra como la primera vista cuando estoy en Portrait en iPad o en iPhone. Estos dos problemas pueden o no estar relacionados, no estoy seguro.
En Mobile hay una barra inferior sobre la barra de pestañas que no puedo entender cómo eliminar. Tuve el mismo problema en el iPad hasta que agregué el código en elUISplitViewController
extensionesviewDidLoad
sin embargo, eso no afectó al móvil. Mira aquí,
PD: No estoy seguro si la pregunta es demasiado larga, sentí que es mejor poner todo en contexto. También he estado investigando mucho pero no puedo encontrar ningún recurso en Swift que use un UITabBarController.
Seguí el siguiente tutorialhttp://nshipster.com/uisplitviewcontroller/