2016-06-06 8 views
0

Ich baue eine App, in der ein Teil der App alle Geschäfte in unserer Stadt auflisten und einige Details über sie zeigen sollte. Dieser Teil funktioniert, aber es beruht auf einem Split-View-Controller, wie Sie in diesen pictures sehen können. Ich habe auch ein Video des Problems hinzugefügt.Geteilte Ansicht Controller-Schnittstelle und Verbindungen

Ich wusste nicht, wie man den Split-View-Controller wirklich verwendet .. Also was ich tat, war das Folgende: Ich legte den Split-View-Controller als anfängliche Ansicht Controller, und schloss den Navigationscontroller, der zuerst öffnen sollte als Detailansicht-Controller. Der erste Navigationscontroller der Tabellenansicht ist als Master-View-Controller eingestellt.

Das Problem ist jetzt, dass wenn ich die App starte, ich auf der Homepage ankommen (was gut ist, überprüfen Sie das Video in der Festplatte), aber in der oberen linken Ecke können Sie sehen, dass es eine Navigationsschaltfläche zu die Tabellenansicht. Gibt es eine Möglichkeit, diese Schaltfläche zu löschen und meinen Homepage-Navigationscontroller wieder zum ursprünglichen Ansichtscontroller zu machen?

Ich denke, ich müsste den Split-View-Controller anders verbinden, den ersten View-Controller wieder auf den ursprünglichen View-Controller setzen und dem Split-View-Controller einen weiteren Thread hinzufügen, aber ich weiß nicht, wie das aussehen soll wie oder wie ich es programmieren soll. Es gibt einen Übergang zum ersten View-Controller der Tabellenansicht.

In meinem Homepage-View-Controller, das ist der Code für das Segue jetzt zum ersten View-Controller meiner Tabellenansicht schieben:

func pushRegisterViewShoppen() 
{ 

    self.performSegueWithIdentifier("SegueShoppen", sender: self) 
} 

let shoppen = UIButton(frame: CGRect(x: 0, y: 0, width: 200, height: 200)) 

     shoppen.setTitle("Shoppen", forState: .Normal) 
     shoppen.setTitleColor(UIColor.whiteColor(), forState: .Normal) 
     shoppen.addTarget(self, action: #selector(ViewController.pushRegisterViewShoppen), 
          forControlEvents: .TouchUpInside) 
     let BergStraatFoto = UIImage.init(named: "Bergstraat") 
     shoppen.setBackgroundImage(BergStraatFoto!, forState: .Normal) 
     tempView.addSubview(shoppen) 

Dies ist prepareForSegue im Tableviewcontroller:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if segue.identifier == "showDetail" { 
     if let indexPath = tableView.indexPathForSelectedRow { 
      let winkel: Winkel 
      if searchController.active && searchController.searchBar.text != "" { 
       winkel = filteredWinkels[indexPath.row] 
      } else { 
       winkel = winkels[indexPath.row] 
      } 

      let controller = (segue.destinationViewController as! UINavigationController).topViewController as! DetailViewController 
      controller.detailWinkel = winkel 
      controller.navigationItem.leftBarButtonItem = splitViewController?.displayModeButtonItem() 
      controller.navigationItem.leftItemsSupplementBackButton = true 
      controller.navigationItem.setHidesBackButton(false, animated: true) 

     } 
    } 
} 

Weiß jemand, wie ich das beheben könnte? Danke im Voraus!

+0

Ich denke, Sie müssen klar verstehen, wie UISplitViewController auf dem iPhone funktioniert. Die Hausnavigationsseite mit UITableView ist das Master-Recht? – satheeshwaran

+0

Ja, ich weiß wirklich nicht, wie es funktioniert ... In der Tat, das ist der Meister, ich aktualisierte die Bilder in der Festplatte, die sie jetzt zeigen, welche der Master, Detail, Beziehungen und die ShoppenSegue –

+0

Sie die Standardauswahl stoppen sollten von Happening – satheeshwaran

Antwort

0

Probieren Sie die Delegate-Methode von UISplitViewController aus. Der Detailansicht-Controller wird angezeigt, da in der Hochformatansicht des iPhones nicht viel Platz ist. Sie müssen dies mithilfe der folgenden Delegate-Methode überschreiben.

func splitViewController(splitViewController: UISplitViewController, collapseSecondaryViewController secondaryViewController:UIViewController, ontoPrimaryViewController primaryViewController:UIViewController) -> Bool { 
//handle it efficiently to decide based on certain conditions.   
return true 
} 

Versuchen Sie, diese thread, die mehr über das Problem erarbeitet.

+0

Danke Mann, fand meine Antwort im Thread! –