2016-04-07 28 views
2

Xcode7 üzerinde hızlı bir uygulama geliştiriyorum ve biraz yardıma ihtiyacım var. SWRevealViewController kenar çubuğunun tüm sahnedemde görünmesini istiyorum ancak sorun sadece ilk görünüm denetleyicisinde gösterilecek itme göstergesini ayarladığımda ortaya çıkıyor. Ayrıca, kenar çubuğunda bir bağlantı tıklatıldığında, navigasyon çubuğu bir sonraki sahnede kaybolur? Birazdan sorunuzu anlasalardı birileri yardım edin ... İşte SWRevealViewController'ı tüm sahnedeki kullanılabilir duruma nasıl getirebilirim?

enter image description here

sidebar

olduğunu ben kenar çubuğuna benim UITableViewController kullanılan komut dosyası, daha sonra

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

SWRevealViewController nasıl eklersiniz? bir storyboard/xib dosyasıyla veya program aracılığıyla kod içinde mi? Bunu kod aracılığıyla yapıyorsanız, sorunuzu nasıl eklediğinizi göstermek için düzenleyebilir misiniz? (Yani ilk görünüm denetleyicisine ekleniyor mu?) –

cevap

0

sen Bağlandığı örneğin bir denetleyici yazarı tarafından sağlananla aynı şeyi yapın ("RevealControllerStoryboardExample2"). Arka VC'den bir şey seçtiğinizde, bu eylemin "SWRevealViewControllerSeguePushController" sınıfına sahip olması gerektiğini düşünün. İşte bu örnekte bir ekran görüntüsü: