2016-07-13 3 views
0

Ich habe SWRevealviewcontroller in meinem Projekt verwendet. Zuerst nahm ich eine viewcontroller namens "SWREVEALVIEWController" und setzen Sie die sw_rear auf eine tableviewcontroller. Und im sw_front Teil setze ich einen TabbarViewcontroller.So lösen Sie das Problem mit dem shrevealviewcontroller

enter image description here

Jetzt habe ich die wenigen Zeilendaten in meinem tableview, die ich als sw_rear gesetzt.

menuArray = ["HOME","ORDER NOW","PHOTOS","REVIEWS","FEEDBACK","RATE US","LOGIN"] 

Und klicken Sie auf jede bestimmte Zelle ich setze es auf die entsprechende Viewcontroller wie folgt.

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    switch(indexPath.row) 
    { 
    case 0 : 
     print("1st row") 
     //self.performSegueWithIdentifier("Main", sender: self) 
     let mainStoryboard = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle()) 
     let vc : UINavigationController = mainStoryboard.instantiateViewControllerWithIdentifier("home") as! UINavigationController 
     self.presentViewController(vc, animated: true, completion: nil) 


     case 1 : 
     print("2nd row") 
     let mainStoryboard = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle()) 
     let vc : UINavigationController = mainStoryboard.instantiateViewControllerWithIdentifier("menuVC") as! UINavigationController 
     self.presentViewController(vc, animated: true, completion: nil) 

Aber nach der Verwendung dieses wird es an den entsprechenden Ort, aber ohne seine Tabbar-Elemente.

siehe die Bildschirme. der erste Bildschirm ist

enter image description here

nach der Seite Menüzellen zum Beispiel einen Klick auf Hause Klicken auf die Heim-Viewcontrollers offen, aber ohne seine Tabbar Artikel. Wie löst man das?

enter image description here

enter image description here

Und das, nachdem der Schiebeknopf für swRevealviewcontromller funktioniert nicht nach ... indem Sie auf Zellen Menü zurück zu jeder viewcontroller Rückkehr ????

+0

können Sie Ihre Ansicht-Controller auf einen anderen Namen umbenennen? –

+0

yeah irgendein Name, den du @BashirSidani nehmen kannst –

Antwort

1

Sie benötigen die pushFrontViewController Methode von SWRevealViewController benutzen, um Ihre Frontansicht Controller zu ändern.

Beispiel

self.revealViewController().pushFrontViewController(viewController, animated: true) 

Ihre TabbarViewcontroller zu drücken, sollten Sie ihm eine Kennung in dem Storyboard geben. Dann können Sie verwenden

let sb = UIStoryboard(name: "Main", bundle: nil) 
let vc = sb.instantiateViewControllerWithIdentifier("yourtabbarvcidentifier") 
self.revealViewController().pushFrontViewController(vc, animated: true) 

EDITED

Um eine bestimmte Registerkarte zu öffnen

let sb = UIStoryboard(name: "Main", bundle: nil) 
let vc = sb.instantiateViewControllerWithIdentifier("yourtabbarvcidentifier") as! UITabBarController 
vc.selectedIndex = 1 // Your index you want to open 
self.revealViewController().pushFrontViewController(vc, animated: true) 

ich nicht testen diese

+0

, aber standardmäßig wird es zu den ersten Tabbar-Elemente gehen. wenn ich auf sw_rear Zellreihen klicke, muss ich dann zum 2. oder 3. Tabbar gehen? –

+0

Überprüfen Sie meine bearbeitete Antwort! –

+0

Das ist toll, Bruder. Arbeiten. Danke –

0

diesen Code hinzufügen in Ihrem SW_front Viewcontroller

-(void)viewWillAppear:(BOOL)animated{ 
 
    
 
    if revealViewController() != nil { 
 
     menuButton.target = revealViewController() 
 
     menuButton.action = "revealToggle:" 
 
     view.addGestureRecognizer(self.revealViewController().panGestureRecognizer()) 
 
    }

+0

kannst du in swift schicken –

+0

ich habe es bereits in viewWillAppear benutzt.aber immer noch nach der Rückkehr zum Home menubutton Aktion funktioniert nicht, wenn ich segue von einer anderen Seite zu diesem Viewcontroller –

+0

setzen Sie die Navigation Controller für Frontansicht –

Verwandte Themen