Swift隨手紀錄Day30-UIPickerView
Darren
Swift
今天有一整天可以用,花了一個早上Debug… 下午一咪眼就好幾小時噴了… 不過好歹也是把之前留著的自製popView裡面裝著UIPickerView的功能往前推進了一點 也學到了不少新東西 然後TabBar也先把基本的部分做好,順便重也寫了不少部分 但這片還是先看之前困擾我有點久的讓畫面跳出UIPickerView
今天有一整天可以用,花了一個早上Debug…
下午一咪眼就好幾小時噴了…
不過好歹也是把之前留著的自製popView裡面裝著UIPickerView的功能往前推進了一點
也學到了不少新東西
然後TabBar也先把基本的部分做好,順便重也寫了不少部分
但這片還是先看之前困擾我有點久的讓畫面跳出UIPickerView
一樣先看Demo

不過其實進度已經離上一次詳細寫出內容差了大概五光年遠…
認真回頭看真的不少該改寫的部分
這次也是在彼得潘講過之後才真的好好了解了navigationController推送的細節
然後才發現好像可以這樣做做看
首先在記錄的畫面點擊UPDATE時會觸發sentRecord這個function
func
sentRecord
sender
UIButton
let
=
RecordPickerController
controller.rowInRecordArray =
controller.players =
self
controller.modalPresentationStyle =
present(controller, animated: true
nil
}
第3, 4行是用來傳資料的可以先忽視
主要是先設定送出來的controller的modalPresentationStyle
然後用present送出新畫面
然後來到要送出的畫面來
import
class
RecordPickerController
UIViewController
UIPickerViewDelegate
UIPickerViewDataSource
let
=
"H"
"BB"
"E"
"K"
"SF"
let
=
"H"
"2B"
"3B"
"HR"
"BB"
"HBP"
"E1"
"E2"
"E3"
"E4"
"E5"
"E6"
"E7"
"E8"
"E9"
"K"
"K"
"SF"
"SH"
var
=
Player
var
UIPickerView
var
String
=
"H"
var
=
Int
let
UIView
=
let
=
UIView
view.backgroundColor =
view.layer.borderWidth =
3
view.backgroundColor =
view.layer.cornerRadius =
5
view.translatesAutoresizingMaskIntoConstraints =
false
return
}()
let
UIButton
=
let
=
UIButton
button.translatesAutoresizingMaskIntoConstraints =
false
button.backgroundColor =
button.layer.cornerRadius =
5
button.layer.borderColor =
UIColor
button.layer.borderWidth =
2
button.setTitle("UPDATE"
button.titleLabel?
=
UIFont
13
button.addTarget(self
#selector
return
}()
override
func
viewDidLoad
super
view.backgroundColor =
recordPickerView =
UIPickerView
recordPickerView.frame =
CGRect
0
0
self
-
12
200
recordPickerView.showsSelectionIndicator =
true
recordPickerView.delegate =
self
recordPickerView.dataSource =
self
recordPickerView.backgroundColor =
view.addSubview(popView)
popView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive =
true
popView.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive =
true
popView.widthAnchor.constraint(equalTo: view.widthAnchor, constant: -
12
=
true
popView.heightAnchor.constraint(equalToConstant: 250
=
true
popView.addSubview(recordPickerView)
popView.addSubview(addButton)
addButton.bottomAnchor.constraint(equalTo: recordPickerView.bottomAnchor, constant: 12
=
true
addButton.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive =
true
addButton.widthAnchor.constraint(equalToConstant: 64
=
true
addButton.heightAnchor.constraint(equalToConstant: 36
=
true
}
func
sendRecordBack
let
=
GameTabBarController
switch
case
0
self
0
case
1
self
1
case
2
self
2
case
3
self
3
case
4
self
4
case
5
self
5
case
6
self
6
case
7
self
7
case
8
self
8
default
return
}
controller.players =
self
controller.modalPresentationStyle =
present(controller, animated: false
nil
}
func
numberOfComponents
in
pickerView
UIPickerView
Int
return
2
}
func
pickerView
_
pickerView
UIPickerView
numberOfRowsInComponent
component
Int
Int
if
==
0
return
}
return
0
}
func
pickerView
_
pickerView
UIPickerView
titleForRow
row
Int
forComponent
component
Int
String
if
==
0
return
}
return
0
}
func
pickerView
_
pickerView
UIPickerView
didSelectRow
row
Int
inComponent
component
Int
if
==
0
recordPickerView.reloadComponent(1
tempRecord =
0
} else
if
==
1
tempRecord =
0
}
}
}
邊寫邊覺得自己對資料的傳遞跟儲存寫得真渣 ( ̄ c ̄)y▂ξ
只差沒翻桌了…