繁体   English   中英

如何在核心数据中存储UIButton值?

[英]How to store UIButton value in core data?

如何在核心数据中存储UIButton值。我有两个名为BloodGroup和city的按钮。 当用户单击任何按钮时, pickerview会出现在底部,并且有“ cancel and done”按钮。因此,用户从UIPickerview选择值,然后单击“ Done”按钮,然后UIPickerview消失,该值将显示在UIButton

需要回答两个问题。 我想将此值存储在核心数据中。 1)我们如何存储这个值?

第二种选择是,如果我们可以将此值存储在uitextfield中,则很容易。

2)谁能告诉我如何将数据从按钮中的选定字段传递到UITextField

import UIKit

class Bloodbank: UIViewController {


    @IBOutlet weak var Bloodgroup: UIButton!

    @IBOutlet weak var City: UIButton!


    @IBOutlet weak var pickerViewObj: UIPickerView!


    @IBOutlet weak var subViewObj: UIView!



    let fruitsArrayValues = ["A+","A-","B+","B-","AB+","AB-","O+","O-"]
    let iPhoneModelArrayValues = ["Ahmedabad","Gandhinagar","Surat","Rajkot","Vadodara"]

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        subViewObj.hidden = true
    }

    //delegate methods.
    func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
        return 1
    }

    func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        //dynamic delegate methods using pickerviewObj.tag
        if pickerViewObj.tag == 0 {
            return fruitsArrayValues.count
        }
        else {
            return iPhoneModelArrayValues.count
        }
    }

    func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
        if pickerViewObj.tag == 0 {
            return "\(fruitsArrayValues[row])" //its displyed to titleForRow.
        }
        else {
            return "\(iPhoneModelArrayValues[row])"
        }
    }

    func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
        //valuesLbl.text = pickerDataValues[row]
    }


    @IBAction func selectItemsBtn(sender: AnyObject) {

        //first they set the tag in pickerviewObj.
        subViewObj.hidden = false
        switch sender.tag {
        case 0:
            pickerViewObj.tag = 0
        case 1:
            pickerViewObj.tag = 1
        default:
            break;
        }
        pickerViewObj.reloadAllComponents()
    }



    @IBAction func cancelBtn(sender: AnyObject) {
    subViewObj.hidden = true
    }


    @IBAction func DoneBtn(sender: AnyObject) {

        if pickerViewObj.tag == 0 {
            let selectedIndex = pickerViewObj.selectedRowInComponent(0)
            Bloodgroup.setTitle(fruitsArrayValues[selectedIndex], forState: UIControlState.Normal)
        }
        else if pickerViewObj.tag == 1 {
            let selectedIndex = pickerViewObj.selectedRowInComponent(0)
            City.setTitle(iPhoneModelArrayValues[selectedIndex], forState: UIControlState.Normal)
        }
        subViewObj.hidden = true

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


}

如我所见,所选值只是一个字符串。 您可以将字符串存储在核心数据中。

对于第二个问题:您可以使用当前的标题方法获取按钮标题的值。 参见: https : //developer.apple.com/library/ios/documentation/UIKit/Reference/UIButton_Class/#//apple_ref/occ/instp/UIButton/currentTitle

顺便说一句,您是否考虑过使用NSUserDefaults存储此值? 对您来说可能会更容易。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM