2017-09-21 2 views
0

지금까지 사용자가 주제를 입력하고 자신의 슬라이더 및 슬라이더 값 레이블과 함께 각 주제의 이름이 표시된 표보기가있는 응용 프로그램을 만들었습니다. 아래를 참조테이블보기에서 데이터 수집 swift

Click Here for Image (I don't have enough reputation yet to embed an image.)

내가 수집 할 수 있도록하려는 각 주제에 대한 데이터와 슬라이더의 값뿐만 아니라 결합 된 모든 슬라이더의 총 가치를 처리합니다.

나는 이것에 관해 어떻게 가야할지 모르겠다. 나는 모든 슬라이더의 총을 얻기 위해 아래의 코드를 시도했지만 작동하지 않습니다, 나는 실마리가 여기에서 :

class SubjectsViewControllerTableViewCell: UITableViewCell { 

var isSliderTotal: Float = Float(GlobalSubjects.subjects.count) * 50 
var lastUp: Float = 50 
var lastDown: Float = 50 
@IBOutlet var subjectLabel: UILabel! 
@IBOutlet var percentLabel: UILabel! 
@IBOutlet var slider: UISlider! 
@IBAction func slider(_ sender: Any) { 
    (sender as AnyObject).setValue(Float(roundf(slider.value * 1)/1), animated: true) 
    print("test") 
    let sliderValueAsVar = String(slider.value) 
    percentLabel.text = String(sliderValueAsVar.components(separatedBy: ".")[0]) 
    if slider.value > 50 { 

     let currentSlider = slider.value - lastDown 
     lastDown = slider.value 
     isSliderTotal += currentSlider 
     print (isSliderTotal) 

    } 
    else if slider.value < 50 { 

     let currentSlider = slider.value + lastUp 
     lastUp = slider.value 
     isSliderTotal -= currentSlider 
     print (isSliderTotal) 

     } 
    } 
    override func awakeFromNib() { 
    super.awakeFromNib() 
    // Initialization code 
    } 

    override func setSelected(_ selected: Bool, animated: Bool) { 
     super.setSelected(selected, animated: animated) 

     // Configure the view for the selected state 
    } 

} 

을 나 또한 알고하지 않는 시도를하는 방법을 잘 모르겠습니다 사전을 사용할 수 있다는 사실을 제외하고 각 슬라이더와 제목의 가치를 어떻게 얻을 수 있을까요?

은 어떤 도움 대단히 감사하겠습니다 :) 사전에

감사합니다.

+0

해당 모델에서 ** 모델 **이 필요합니다. w 컨트롤러와 슬라이더 값이 모델을 업데이트하고 필요한 연산을 수행 할 때 호출되는 'cellForRow ...'에 콜백 클로저를 유지합니다. – vadian

답변

0

대리인을 사용할 수 있습니다. 전화 :

var delegate: YourTableViewCellDelegate! 

다음 FUNC 슬라이더에서 (모든 _ 보낸 사람 :) : yourTableViewCell.swift 에서

protocol YourTableViewCellDelegate { 
    func passSliderValue() 
} 

class YourTableViewController: UITableViewController, YourTableViewCellDelegate { 
    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let currentCell = tableView.dequeueReusableCell(withIdentifier: "YourCellIdentifier", for: indexPath) as! YourTableViewCell 
     currentCell.delegate = self 
    } 

    func passSliderValue(){ 
    //deal with your data 
    } 
} 

이 속성을 추가 : 당신의 tableViewController에서

self.delegate.passSliderValue() 

슬라이더 값을 전달해야 할 때