2016-11-08 3 views
-1

Ich bin eine benutzerdefinierte Tab-Leiste zu schaffen, basierend auf diesem Tutorial: https://github.com/codepath/ios_guides/wiki/Creating-a-Custom-Tab-BarIndividuelle Tab Bar mit Details zu sehen

Alles ist in Ordnung, aber wenn ich von einem bestimmten View-Controller auf seine segue will „Detailansicht“, die Details Ansicht deckt die untere Leiste mit Menü ab. Dieses Verhalten ist logisch, da ich einen neuen View-Controller drehe, aber wie würde ich es tun müssen, um den unteren Balken immer sichtbar und funktionsfähig zu halten?

Ich benutze segue dafür, weil ich einige Daten weitergeben muss. Ich brauche eine benutzerdefinierte Leiste, weil die Funktionalität und das Aussehen sehr schwierig zu implementieren wäre, wenn man die Apples verwendet.

Irgendwelche Tipps oder Vorschläge? Dank

EDIT: Hier sind alle "Register" funktionieren gut, aber wenn Sie auf eine Zeile tippen ich navigieren Sie zu "Details" -Ansicht

enter image description here

Details view

im Detail Ansicht, untere Leiste ist nicht sichtbar.

+0

hast du die in Schritt 9 erwähnte contentView gesetzt – Joe

+0

ja, ich habe alle Tutorials Meine Schritte funktionieren gut. Das Problem ist mit der Detailansicht, die nicht im Tutorial behandelt wird :( – repoguy

+0

können Sie einen Screenshot Ihres Problems posten? – Joe

Antwort

0

haben Sie versucht, hidesBottomBarWhenPushed = false für die Detailansicht einzustellen?

+0

Ich benutze nicht UITabBarController.Es ist alles auf UIViewControllers basiert und meine untere Leiste ist nur eine UIView Es gibt keine hidesBottomBarWhenPushed -Eigenschaft – repoguy

+0

Container View ist nichts anderes als eine UIView und ich benutze sie für die Anzeige von UIViewControllern für jede Registerkarte Die Frage könnte sein, wie man vom View Controller in der Containeransicht zu einem anderen View Controller mit segue navigiert die gleiche Größe haben? – repoguy

0

Gelöst es. Stattdessen
des Aufrufs self.performSegueWithIdentifier("detailsViewSegue", sender: self)

in

tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) füge ich Details Blick auf die Hierarchie wie folgt:

let storyboard = UIStoryboard(name: "Main", bundle: nil) 
let detailsView = storyboard.instantiateViewControllerWithIdentifier("contactDetailsView") 
addChildViewController(detailsView) 
detailsView.view.frame = CGRectMake(self.view.frame.width, 0, self.view.frame.width, self.view.superview!.frame.height) 
self.view.addSubview(detailsView.view) 
UIView.animateWithDuration(0.25) { 
     detailsView.view.frame = CGRectMake(0, 0, self.view.frame.width, self.view.superview!.frame.height) 
} 
detailsView.didMoveToParentViewController(self) 

dann, wenn der Benutzer auf der Rückseite Pfeil tippt ich tun:

@IBAction func goBackButtonAction(sender: UIButton) { 
     self.willMoveToParentViewController(self) 
     UIView.animateWithDuration(0.25, animations: { 
      self.view.frame = CGRectMake(self.view.frame.width, 0, self.view.frame.width, self.view.frame.height) 
      }) { (completed) in 
       if completed { 
        self.view.removeFromSuperview() 
        self.removeFromParentViewController() 
      } 
     } 
    }