Quindi aggiungo uno UISplitViewController
a un progetto che è incorporato con un UITabBarController
.Come utilizzare un UISplitViewController in Swift
Il UISplitViewController
ha un UINavigationController
come master & rapporto Particolare con il proprio controllore radice.
Il Master UINavigationController
rootController
ha un dettaglio seguito al Dettaglio UINavigationController
.
vedere qui:
tutti abbastanza semplice diritto? Ora nel TableViewController faccio quanto segue;
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
}
Anch'io ho un'estensione UISplitViewController e faccio quanto segue;
extension UISplitViewController: UISplitViewControllerDelegate {
public override func viewDidLoad() {
self.extendedLayoutIncludesOpaqueBars = true
}
}
Con tutto ciò ho avuto i seguenti problemi;
Quando toccando
tableviewcell
al Segue alla visualizzazione dettagliata la visualizzazione dei dettagli si apre all'interno del riquadro a sinistra quando maestro su iPad nel paesaggio, invece di destra. Inoltre, non riesco a capire come mostrare la vista master come prima vista in Portrait su iPad o su iPhone. Questi due problemi possono o non possono essere correlati non ne sono sicuro.Sul Mobile v'è una barra in basso sopra la barra delle schede che non riesco a capire come rimuovere. Ho avuto lo stesso problema sull'iPad fino a quando ho aggiunto il codice nelle estensioni
UISplitViewController
viewDidLoad
, ma ciò non ha influito sul cellulare. Vedi qui,
PS: Non sono sicuro se la domanda è troppo lungo, ho sentito che è meglio mettere tutto nel contesto. Inoltre ho fatto molte ricerche ma non riesco a trovare alcuna risorsa in swift che usi un UITabBarController.
ho fatto seguire il seguente tutorial http://nshipster.com/uisplitviewcontroller/
Così ho fatto tutto ciò che hai detto, ho anche guardato il tutorial di raywenderlick (già fatto prima) e ho creato un nuovo progetto come dettaglio principale per vedere come funziona Apple. Tutti gli esempi lo hanno in modo che la vista di dettaglio venga mostrata prima di tornare al master, il che non ha senso per me, per esempio, guarda l'app delle impostazioni che scegli prima la categoria non carica le impostazioni generali e poi torna alle categorie. La vista dettagli viene caricata ancora nella finestra principale e ora ha due barre in basso :(l'unico codice nel master atm è 'self.splitViewController? .preferredDisplayMode = .Automatic' –
quindi, non mostrare il detailViewController. Eseguirlo in masterViewController 'didSelectRowAtIndexPath'. Quello che ho fatto per la mia app era 2 storyboard per ipad e iphone, con e senza splitViewController – shinoys222
l'azione nella barra di navigazione di deatilVC dovrebbe essere impostata su splitVC o master's – shinoys222