firstView
import UIKit class FirstViewController: UIViewController,UIPickerViewDelegate,UIPickerViewDataSource,UITextFieldDelegate { let userDefaults = UserDefaults.standard var sexPickerView: UIPickerView = UIPickerView() let sexList = ["男","女"] @IBOutlet weak var sexTextField: UITextField! @IBAction func changeBtn(_ sender: Any) { userDefaults.set(sexTextField.text, forKey: "sex") } override func viewDidLoad() { super.viewDidLoad() sexPickerView.delegate = self sexPickerView.dataSource = self sexPickerView.showsSelectionIndicator = true self.sexTextField.text = sexList[0] let sextoolbar = UIToolbar(frame: CGRectMake(0, 0, 0, 35)) let sdoneItem = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(FirstViewController.sdone)) sextoolbar.setItems([sdoneItem], animated: true) self.sexTextField.inputView = sexPickerView self.sexTextField.inputAccessoryView = sextoolbar sextoolbar.backgroundColor = UIColor.gray } func numberOfComponents(in pickerView: UIPickerView) -> Int { return 1 } func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { return sexList.count } func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { return sexList[row] } func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { self.sexTextField.text = sexList[row] } func sdone() { self.sexTextField.endEditing(true) //self.testlabel.text = self.textField.text } func CGRectMake(_ x: CGFloat, _ y: CGFloat, _ width: CGFloat, _ height: CGFloat) -> CGRect { return CGRect(x: x, y: y, width: width, height: height) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } }
secondView
import UIKit class SecondViewController: UIViewController { let defaults = UserDefaults.standard @IBOutlet weak var testLabel: UILabel! override func viewDidLoad() { super.viewDidLoad() testLabel.text = defaults.string(forKey: "sex")! } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }
このコードで、ボタンを押すたびsecondViewのlabelを更新したいのですが、ボタンを押してもlabelが変わりません。でも、一度アプリのタスクを切ってもう一度アプリを開くと、更新されています。なぜなのか教えてください。また解決するにはどうしたらいいですか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/08/13 05:00