当我回到页面时,在屏幕上显示第一个pickerView行

时间:2016-04-13 20:46:07

标签: ios swift uipickerview

我正在尝试获取pickerView的第一行数据。

当我回到pickerView页面时,我得到了第一个数据,但是我在屏幕上得到了错误的行。这就是我获得第一行的方式:

pickerView(myPickerView!, didSelectRow: 0, inComponent: 0)

我在viewDidLoad中使用此代码。如何在屏幕上显示第一行?

3 个答案:

答案 0 :(得分:1)

你可以使用func pickerView(pickerView:

List<int> lstSports = new List<int>();
        if(sport != null)
        {
            lstSports.Add(Convert.ToInt32(sport));
        }
        if (sport1 != null)
        {
            lstSports.Add(Convert.ToInt32(sport1));
        }
        if (lstSports.Count > 0)
        {
            foreach(int i in lstSports)
            {
                if(lstSports.IndexOf(i) == 0)
                {
                    predicate = predicate.And(x => x.SportsID == i);
                }
                else
                {
                    predicate = predicate.Or(x => x.SportsID == i);
                }
            }
        }

查看this article

答案 1 :(得分:1)

请使用此代码选择特定行

let picker = UIPickerView()
picker.selectRow(0, inComponent: 0, animated: true)

答案 2 :(得分:0)

当我回到页面时,我放弃获取第一个选择器行数据。我认为它应该是我应该得到的选定行数据。我结合你的解决方案并找到解决方案。

工作代码:

func pickerView(pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusingView view: UIView?) -> UIView {

    let pickerLabel = UILabel()
    let titleData = newuser!.valueForKey("name").objectAtIndex(row) as! String
    let myTitle = NSAttributedString(string: titleData, attributes: [NSFontAttributeName:UIFont(name: "Times New Roman", size: 25.0)!,NSForegroundColorAttributeName:UIColor.whiteColor()])
    pickerLabel.attributedText = myTitle
    pickerLabel.textAlignment = .Center

    selectedLog = (newuser?.valueForKey("name").objectAtIndex(row))! as! String

    return pickerLabel
}

当我返回viewForRow页面时,此pickerView函数可让我获取所选行数据。 selectedLog是我的字符串变量。我从这里显示并保存选定的行数据。 titleData变量可让我获取所选数据。而已!谢谢你们所有人。