当我单击UISegmentedControl时,将其更改为UITableViewCell

时间:2015-12-16 01:00:38

标签: swift uitableview uisegmentedcontrol

如何调用方法

internal func segconChanged(segcon: UISegmentedControl, var text:String){

        switch segcon.selectedSegmentIndex {
        case 0:
            print("whoo")
            return text = "clicked Trainings"
        case 1:
            print("yeahh")
            return text = "clicked Daily"
        default:
            break
        }
    }

来自

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell

我是swift的初学者。

我正在使用UISegmentedControl和UITableView。 当我单击UISegmentedControl时,将其更改为UITableViewCell。 请查看func tableView内部(tableView:UITableView,cellForRowAtIndexPath indexPath:NSIndexPath) - >的UITableViewCell

我添加 segconChanged(UISegmentedControl(),text:“”)来调用方法, 但我认为这是错误的,实际上并没有用。

请给我建议。

这是所有代码。

import UIKit

class TrainingLogViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

    @IBOutlet weak var myTableView: UITableView!
    @IBOutlet weak var segment: UISegmentedControl!
    let tabLog: NSArray = ["Trainings", "Daily"]



    override func viewDidLoad() {
        super.viewDidLoad()
        myTableView.delegate = self
        myTableView.dataSource = self
        segment.addTarget(self, action: "segconChanged:", forControlEvents: UIControlEvents.ValueChanged)

    }

    var text: String = ""

    internal func segconChanged(segcon: UISegmentedControl, var text:String){

        switch segcon.selectedSegmentIndex {
        case 0:
            print("whoo")
            return text = "clicked Trainings"
        case 1:
            print("yeahh")
            return text = "clicked Daily"
        default:
            break
        }
    }


    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        // #warning Incomplete implementation, return the number of sections
        return 10
    }

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 10

    }

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
        let text: String = ""
        *segconChanged(UISegmentedControl(), text: "")
        let cell = UITableViewCell(style: .Subtitle, reuseIdentifier: "LogTraining")
        cell.textLabel?.text = text
        cell.detailTextLabel?.text = "subtitle"
        return cell

    }



}

1 个答案:

答案 0 :(得分:1)

您无需手动调用Dockerfile函数,因为在更改细分时会自动调用它。因此,只需在更改细分时重新加载您的tableview,检查其索引并按照ENV方法填充数据。

试试这段代码:

segconChanged()