picker viewの続き

DatePickerのお試しの前に、picker viewを直接、ユーティリティーエリアのライブラリペインから貼り付けてコードを書かずに、同様の動作をするプロジェクトを作ってみることにした。

コードをひとつひとつ消しながら、残す必要のあるコードを見つける。
コードを書くにはかなりの熟練が必要なので、貼り付けるだけで出来たら楽だ。

大勢でプロジェクトを書くわけではなく、あくまでも一人の家内工業(というほどでもないが)だから、貼り付けで済むならその方が確実だ。
もっとしっかりコードが書く体力がつくまでは楽チンなロープウェイ登山を選ぶの間違ってはいないだろう。

これでも動きました。

(ちなみに、当たり前だがピッカーとラベルは削除して
新たに貼り付けないと動かないので注意)

少し、デリゲートがわかったような気がする。
(でもまだ、本当は全然わかっていない)。

データを別の画面に遷移する方法を学びたいが、ここはグッと堪えて、
ともかく必要な部品の使い方をひとつひとつ学ぶことに精進だ!

次はDatePickerを学ぼう!(たぶん)

==================
(備忘録)ピッカービューを貼り付けで使うコード
==================

import UIKit
class ViewController: UIViewController, UIPickerViewDelegate,UIPickerViewDataSource {
// UIPickerViewの貼り付け
@IBOutlet weak var myUIPicker: UIPickerView! //貼り付け

//private var myUIPicker: UIPickerView!の代わりに貼り付ける
private let myValues: NSArray = ["赤","黄","青","白","緑"]

// 表示する値の配列.配列には文字を入れないとエラーになることに注意
@IBOutlet weak var myLabel: UILabel! //貼り付け!!

override func viewDidLoad() {

super.viewDidLoad()
//以下のデリゲートを加えないと配列が読めない
myUIPicker.delegate = self

// DataSourceを設定する.デリゲート!
myUIPicker.dataSource = self
}

//pickerに表示する列数を返すデータソースメソッド.
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {

return 1
}

//pickerに表示する行数を返すデータソースメソッド.

func pickerView(pickerView: UIPickerView, numberOfRowsInComponent
component: Int) -> Int {
return myValues.count
}

//pickerに表示する値を返すデリゲートメソッド.
func pickerView(pickerView: UIPickerView, titleForRow row: Int,
forComponent component: Int) -> String? {

return myValues[row] as? String
}

//pickerが選択された際に呼ばれるデリゲートメソッド.
func pickerView(pickerView: UIPickerView, didSelectRow row: Int,
inComponent component: Int) {
myLabel.text = String(myValues[row])
let aa = row //varだとエラーになる!
switch aa {
case 0 ://print("赤")
myLabel.backgroundColor = UIColor.redColor()

case 1 ://print("黄色")
myLabel.backgroundColor = UIColor.yellowColor()

case 2 ://print("青")
myLabel.backgroundColor = UIColor.blueColor()

case 3 ://print("白")
myLabel.backgroundColor = UIColor.whiteColor()

case 4 ://print("緑")
myLabel.backgroundColor = UIColor.greenColor()

default: //print("なし").defaultとがないとエラーになる
myLabel.backgroundColor = UIColor.blueColor()
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
====================