2015-02-05 81 views
0

我已經創建了一個帶有動態原型單元格的tableviewcontroller。在此視圖中,用戶可以選擇從按下按鈕來鍵入位置評論,也可以使用UI滑塊爲位置評分爲1至10。該審查是在tableviewcontroller內使用UIAlertController完成的 - 但UISlider在單元本身內。我試圖將這兩個數據片段保存到tableviewcontroller中的核心數據。但是UISlider評分值在tableviewcontroller中不可用 - 是否有一種方法可以在單元格的tableview中引用它,還是需要有兩個單獨的保存函數?以下是我的一些代碼 - 在tableview控制器中它不能識別分配給原型單元格中的UISLider值的變量。預先感謝任何幫助!在UITableViewController中保存CoreData,但UISlider數據僅在原型單元格中 - 我如何將它保存到CoreData中

在我tableviewcell:

class WineryInfoTableViewCell: UITableViewCell { 

@IBOutlet weak var ratingLabel: UILabel! 
@IBOutlet weak var sliderbutton: UISlider! 

@IBAction func sliderValueChanged(sender: UISlider) { 
    var ratingValue = Float(sender.value) 
    var roundedRatingValue = roundf(ratingValue/0.5)*0.5 
    ratingLabel.text = "\(roundedRatingValue)" 

} 

我tableviewcontroller

@IBAction FUNC保存(){

if let managedObjectContext = (UIApplication.sharedApplication().delegate as AppDelegate).managedObjectContext { 

     myRatingData = NSEntityDescription.insertNewObjectForEntityForName("WineryReview", inManagedObjectContext: managedObjectContext) as wineryReview 

     myRatingData.wineryName = wineryNames 
     //myRatingData.rating = ratingLabel.text how do I call this for saving? 
     myRatingData.review = myRatingEntry 


     var e:NSError? 
     if managedObjectContext.save(&e) != true { 
      println("insert error: \(e!.localizedDescription)") 
      return 
     } 
    } 

    // If all fields are correctly filled in, extract the field value 
    println("Winery: " + myRatingData.wineryName) 
    println("Review: " + myRatingData.review) 
    //println("Rating: " + ratingLabel.text!) how do I call this for saving? 

} 

回答

0

我還是新的雨燕,但我想想我可能會回答你的困境的一部分。要引用表格單元格中的UISlider,您可以使用'標記'來獲取對它的引用。

例如:

let cell = tableView.dequeueReusableCellWithIdentifier(TableViewCellIdentifiers.someCell, forIndexPath: indexPath) as UITableViewCell

let slider = cell.viewWithTag(100) as UISlider

在上面的例子中,我會用分配UISlider爲100標籤,所以我能夠用得到一個參考吧cell.viewWithTag(100)。

請原諒我,如果這不起作用!

0

您可以將WineryReview對象傳遞給單元格,並直接從sliderValueChanged設置其評分。

在cellForRowAtIndex:

cell.wineryReview = myReviewData 

在TableViewCell:

@IBOutlet weak var ratingLabel: UILabel! 
@IBOutlet weak var sliderbutton: UISlider! 

var wineryReview: WineryReview? 

@IBAction func sliderValueChanged(sender: UISlider) { 
    var ratingValue = Float(sender.value) 
    var roundedRatingValue = roundf(ratingValue/0.5)*0.5 

    wineryReview.rating = roundedRatingValue 

    ratingLabel.text = "\(roundedRatingValue)" 
} 

你可以把節省從TableViewController的背景下,如果你喜歡。我在一個項目中做了非常類似的事情。