昨天用好所有的設定畫面,今天要來處理畫面間傳值的問題。
由於之前用protocol的方式只能反向傳值,但是今天是一堆畫面間傳值,不適用這種方法,所以換種方法來處理傳值的問題。
首先是先建立一個新的swift檔案,裡面的程式碼大概像下面這樣,將要傳遞的值存放在這個檔案裡。
import Foundation
class addPageValue {
static let pageValue = addPageValue()
var addStruct = true
var selectCell = 0
var pickHour = 0
var pickMinute = 0
var repeatDayCheck = [false, false, false, false, false, false, false]
var labelText = ""
var soundSource = ["口哨", "平靜", "活潑", "音效", "音樂盒", "悅耳", "清脆", "網球"]
var soundSelect = 0
var switchOnOff = true
private init() {}
}
然後將畫面裡需要傳遞的變數,全部取代。
這裡以鈴聲畫面作為例子,這樣在其他畫面也能收到在鈴聲畫面的內容。
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
addPageValue.pageValue.soundSource.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = soundPageTableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! SoundPageTableViewCell
cell.SoundLabel.text = addPageValue.pageValue.soundSource[indexPath.row]
if addPageValue.pageValue.soundSelect == indexPath.row {
cell.accessoryType = .checkmark
}else{
cell.accessoryType = .none
}
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
addPageValue.pageValue.soundSelect = indexPath.row
soundPageTableView.reloadData()
}
今天就大概介紹到這裡,明天就能開始完善新增畫面。