我正在以编程方式创建分段控件,以便在不同的单元格子类之间切换。因此,我创建了一个整数,假设change等于selectedSegmentIndex问题是无论我做什么,整数总是为零,即使我检查了selectedSegmentIndex的变化,并且它确实在0和1之间变化。为什么整数总是0?
首先我创建整数

var segmentSelected:Int?

然后创建segmentedControl并在viewDidLoad中将integer设置为0
    segmentedControl = UISegmentedControl(items: ["Detail", "Tickets"])
    segmentedControl!.frame = CGRectMake((self.navigationController!.navigationBar.frame.width/2)-((self.navigationController!.navigationBar.frame.width-20)/2), self.navigationController!.navigationBar.frame.height-38, self.navigationController!.navigationBar.frame.width-20, 28)
    segmentedControl!.selectedSegmentIndex = 0

    segmentedControl!.tintColor = UIColor.whiteColor()
    segmentedControl!.addTarget(self, action: Selector("valueChanged:"), forControlEvents: UIControlEvents.ValueChanged)
    self.navigationController?.navigationBar.addSubview(segmentedControl!)

    segmentSelected = 0

然后我创建valueChanged方法
func valueChanged(sender: UISegmentedControl) {

    println(segmentedControl?.selectedSegmentIndex)


    if segmentedControl?.selectedSegmentIndex == 0 {
        segmentSelected == 0
        tableView.reloadData()



    } else if segmentedControl?.selectedSegmentIndex == 1 {

        segmentSelected == 1

        tableView.reloadData()

    }

    println(segmentSelected)


}

最佳答案

您使用的是==而不是=,因此您永远不会分配segmentSelected变量。

10-08 06:05