###前提・実現したいこと
Swift学び始めたばかりの初心者です。
また、プログラミング自体も初心者です。お手柔らかにお願いいたしますmm
動的に生成された TableViewCell に UISwitch を設定し、
ON/OFF されたときに下記2点を取得したいですがうまくいきません。
取得したいもの
- セル表示名(辞書の values にあたる [String] )
- 辞書の keys にあたる String
###発生している問題・エラーメッセージ
取得したい情報がうまくとれません。
###該当のソースコード
Swift
1/// SportsTeam.data 2class SportsTeams { 3 let teams: [String: [String]] = [ 4 "baseball" : [ 5 "読売ジャイアンツ", 6 "阪神タイガース", 7 "中日ドラゴンズ" 8 ], 9 "soccer" : [ 10 "鹿島アントラーズ", 11 "浦和レッズ", 12 "川崎フロンターレ" 13 ] 14 ] 15 16/// SportsTeamsTableViewController 17class SportsTeamsTableViewController: UITableViewController { 18 19 @IBOutlet var sportsTeamsTableView: UITableView! 20 21 @IBAction func followSwitch(_ sender: Any) { 22 let followSwitch = UISwitch() 23 followSwitch.isOn = true // フォロー中なら true / 非フォローなら false 24 } 25 26 var category: String! = "" 27 var sportsTeams = SportsTeams() 28 29 func onSwitched(_ sender: AnyObject) { 30 // フォロー時、配列に該当チームが含まれていなければ、userDefaults に追加 31 // フォローから外す場合、 userDefaults 配列からチームを削除 32 } 33 34 //tableViewセル取得 35 override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 36 // 再利用可能な cell を得る 37 let cell = tableView.dequeueReusableCell(withIdentifier: "Teams", for: indexPath) 38 39 // イベント発生したセルのチームと、チームが所属するスポーツカテゴリ(ex:baseball)を特定 40 if let row = tableView.indexPathForSelectedRow?.row { 41 let team = sportsTeams.teams.values // ★ここがうまくいかない★ 42 let selectedteam = team[indexPath.row] // ★ここがうまくいかない★ 43 } 44 45 followSwitch.addTarget(self, action: #selector(self.onSwitched(_:)), for: .valuechanged) // ★ここがうまくいかない★ 46 return cell 47 } 48 49// 以下略 50}
###試したこと
何を試せばいいのかもわからず、調べてもわからず、お手上げになってしまいました。
###補足情報(言語/FW/ツール等のバージョンなど)
Xcode Version 8.3.3 (8E3004b)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/28 01:43
2017/11/28 01:54
2017/11/28 01:58 編集
2017/11/28 05:03 編集
2017/11/28 02:03
2017/11/28 02:09
2017/11/28 04:47