回答編集履歴
1
追加
answer
CHANGED
@@ -120,4 +120,44 @@
|
|
120
120
|
}
|
121
121
|
}
|
122
122
|
}
|
123
|
-
```
|
123
|
+
```
|
124
|
+
|
125
|
+
---
|
126
|
+
|
127
|
+
呼び出し側で配列を管理する例として、たとえばこのような方法もあります。
|
128
|
+
|
129
|
+
```swift
|
130
|
+
import UIKit
|
131
|
+
|
132
|
+
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
|
133
|
+
// MARK: 2020/05/04 追加
|
134
|
+
// 配列はこちらに置く
|
135
|
+
let detailedArray = ["A","B","C","D"]
|
136
|
+
|
137
|
+
// MARK: 2020/05/04 追加
|
138
|
+
// performSegue(withIdentifire:sender)が呼び出された後に呼ばれる
|
139
|
+
// この時点で nextViewController はインスタンス化済み
|
140
|
+
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
|
141
|
+
if let nextVC = segue.destination as? nextViewController {
|
142
|
+
nextVC.array = detailedArray
|
143
|
+
}
|
144
|
+
}
|
145
|
+
|
146
|
+
// 後は同じ
|
147
|
+
}
|
148
|
+
|
149
|
+
// MARK: 変更
|
150
|
+
// UINavigationControllerDelegate にも準拠させる
|
151
|
+
class nextViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UINavigationControllerDelegate {
|
152
|
+
// MARK: 2020/05/04 変更
|
153
|
+
// array はオプショナル型の配列として宣言しておく。
|
154
|
+
// 具体的な値を入れるのは、viewControllerのprepareメソッドで行っている
|
155
|
+
var array: [String]!
|
156
|
+
|
157
|
+
// 後は同じ
|
158
|
+
}
|
159
|
+
```
|
160
|
+
|
161
|
+
`segue` を使って画面遷移を行なっているので、`prepare`メソッド内で遷移先のクラスにアクセスし、そこに値を入れています。
|
162
|
+
|
163
|
+
もちろん、これ以外にもいろいろなパターンが考えられると思いますが、ひとつの参考にしていただければと思います。
|