質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

192閲覧

viewDidLoad()内で取得したデータをこの関数の外で利用したい

oyasumi

総合スコア13

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2018/06/05 12:23

前提・実現したいこと

swift初心者です。
func viewDidLoad()まで全画面から送られてきた値から紐づいてる配列を取得できているのですが
viewDidLoad()の外で値をセルに格納したり次のコントローラに渡したりしたいです。
このままだとviewDidLoad()外のhashtagsで値が取れずエラーになってしまいます。

viewDidLoad()の外に定義などもしてみたのですが上手くいきませんでした。よろしくお願い致します。

該当のソースコード

swift

1 override func viewDidLoad() { 2 super.viewDidLoad() 3 //AppDelegateのインスタンスを取得 4 let appDelegate:AppDelegate = UIApplication.shared.delegate as! AppDelegate 5 //取得した値を格納 6 let genreindex = appDelegate.genreIndex 7 //そこからジャンルの名前取得 8 let genreName = GenreIndex().genres[genreindex!] 9 10 let hashtags: [String] = HashtagIndex.hashtagIndex(genreIndex: genreindex!) 11 print(hashtags) 12 } 13 14   15    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 16 17 return hashtags.count 18 } 19 20   func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 21 let cell = tableView.dequeueReusableCell(withIdentifier: "HashtagViewCell", for: indexPath) as! HashtagViewCell 22 cell.content.text = hashtags[indexPath.item] 23 24 return cell as UITableViewCell 25 } 26 27 // cell選択時に呼ばれる関数 28 // 画面遷移先に渡すデータをここで格納する 29 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 30 31 let giveHashtag: String = hashtags[indexPath.item] 32 let hashtagid = hashtags.index(of: giveHashtag) 33 let appDelegate:AppDelegate = UIApplication.shared.delegate as! AppDelegate 34 appDelegate.hashtagId = hashtagid 35 36 self.goToImageIndexView() 37 }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

swift

1 2let hashtags = [String]() 3 4override func viewDidLoad() { 5 super.viewDidLoad() 6 //AppDelegateのインスタンスを取得 7 let appDelegate:AppDelegate = UIApplication.shared.delegate as! AppDelegate 8 //取得した値を格納 9 let genreindex = appDelegate.genreIndex 10 //そこからジャンルの名前取得 11 let genreName = GenreIndex().genres[genreindex!] 12 13 hashtags = HashtagIndex.hashtagIndex(genreIndex: genreindex!) 14 print(hashtags) 15 } 16

今度はAppDelegate渡しですか…。

投稿2018/06/05 13:17

編集2018/06/05 14:23
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/06/06 00:27

スコープ{}の中で定義したものはそのスコープの外に出ると死にます
oyasumi

2018/06/06 03:18

こちらまで!!本当にありがとうございます!それもまた同じようなミスですね笑肝に命じます。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問