2016-04-07 4 views
2

Ich erstelle eine App auf Xcode7 mit Swift und ich brauche wirklich etwas Hilfe. Ich möchte die SWRevealViewController-Sidebar in meiner gesamten Szene erscheinen lassen, aber das Problem ist, dass es nur auf dem ersten View-Controller erscheint, auf dem der Push-Bereich angezeigt wird. Und auch wenn Sie auf einen Link in der Seitenleiste klicken, verschwindet die Navigationsleiste in der nächsten Szene. Bitte jemand helfen ...Wie kann ich den SWRevealViewController in meiner gesamten Szene verfügbar machen?

sidebar

enter image description here

Hier ist das Skript, das ich auf meinem UITableViewController für die Sidebar verwendet Links

var catArrayId = [String]() 
var catArrayName = [String]() 
var catArrayImg2 = [String]() 

override func viewDidLoad(){ 

    // get available categories according to customer country 
    get_categories() 

} 

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return catArrayId.count 
} 

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCellWithIdentifier("navCell", forIndexPath: indexPath) as UITableViewCell 
    cell.textLabel?.text = self.catArrayName[indexPath.row] 
    return cell 
} 

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    self.performSegueWithIdentifier("showCategory", sender: self) 
} 

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if segue.identifier == "showCategory" { 
     let VC = segue.destinationViewController as! CategoryProductsViewController 

     let indexPath: NSIndexPath = self.tableView.indexPathForSelectedRow! 
     let categoryImage = UIImage(named: catArrayImg2[indexPath.row]) 

     VC.catId = self.catArrayId[indexPath.row] 
     VC.image = categoryImage! 

    } 
} 

func get_categories(){ 
    let country_id = 168 
    //let startTime = NSDate.timeIntervalSinceReferenceDate() 
    let pageUrl = "https://domain.com/ios/home-categories-image.php?country_id=\(country_id)&uudi=" + NSUUID().UUIDString 
    let myUrl = NSURL(string: pageUrl) 
    let request = NSMutableURLRequest(URL: myUrl!) 
    request.HTTPMethod = "GET" 
    request.cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringCacheData 

    let session = NSURLSession.sharedSession() 
    let task = session.dataTaskWithRequest(request){ 
     (let data, let response, let error) in 

     if(error != nil){ 
      print(error?.localizedDescription) 
      return 
     } 

     do{ 
      let json = try NSJSONSerialization.JSONObjectWithData(data!, options: .AllowFragments) 
      let catArray = json as? [[String: AnyObject]] 
      for catArr in catArray!{ 

       let catName = catArr["name"] as? String 
       let catID = catArr["id"] as? String 
       let img2 = catArr["image2"] as? String 

       dispatch_async(dispatch_get_main_queue(), { 
        self.catArrayId.append(catID!) 
        self.catArrayName.append(catName!) 
        self.catArrayImg2.append(img2!) 
        self.tableView.reloadData() 
       }) 
      } 
     } 
     catch{ 
      print("Error serializing JSON: \(error)") 
     } 
    } 
    task.resume() 
} 
+0

Wie fügen Sie den SWRevealViewController hinzu? über eine Storyboard/XIB-Datei oder programmgesteuert im Code? Wenn Sie es über Code tun, können Sie Ihre Frage bearbeiten, um zu zeigen, wie Sie sie hinzufügen und wo (z. B. wird sie im ersten View-Controller hinzugefügt?) –

Antwort

0

Wenn ich Ihre Frage richtig verstanden habe, dann können Sie Machen Sie das selbe wie im Beispiel von einem Autor des Controllers ("RevealControllerStoryboardExample2"). Wenn Sie etwas aus dem hinteren VC auswählen, muss das Segment für diese Aktion die Klasse "SWRevealViewControllerSenguePushController" haben. Hier ist ein Screenshot dieses Beispiels:

Verwandte Themen