回答編集履歴

1

追加

2020/05/04 09:56

投稿

TsukubaDepot
TsukubaDepot

スコア5086

test CHANGED
@@ -243,3 +243,83 @@
243
243
  }
244
244
 
245
245
  ```
246
+
247
+
248
+
249
+ ---
250
+
251
+
252
+
253
+ 呼び出し側で配列を管理する例として、たとえばこのような方法もあります。
254
+
255
+
256
+
257
+ ```swift
258
+
259
+ import UIKit
260
+
261
+
262
+
263
+ class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
264
+
265
+ // MARK: 2020/05/04 追加
266
+
267
+ // 配列はこちらに置く
268
+
269
+ let detailedArray = ["A","B","C","D"]
270
+
271
+
272
+
273
+ // MARK: 2020/05/04 追加
274
+
275
+ // performSegue(withIdentifire:sender)が呼び出された後に呼ばれる
276
+
277
+ // この時点で nextViewController はインスタンス化済み
278
+
279
+ override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
280
+
281
+ if let nextVC = segue.destination as? nextViewController {
282
+
283
+ nextVC.array = detailedArray
284
+
285
+ }
286
+
287
+ }
288
+
289
+
290
+
291
+ // 後は同じ
292
+
293
+ }
294
+
295
+
296
+
297
+ // MARK: 変更
298
+
299
+ // UINavigationControllerDelegate にも準拠させる
300
+
301
+ class nextViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UINavigationControllerDelegate {
302
+
303
+ // MARK: 2020/05/04 変更
304
+
305
+ // array はオプショナル型の配列として宣言しておく。
306
+
307
+ // 具体的な値を入れるのは、viewControllerのprepareメソッドで行っている
308
+
309
+ var array: [String]!
310
+
311
+
312
+
313
+ // 後は同じ
314
+
315
+ }
316
+
317
+ ```
318
+
319
+
320
+
321
+ `segue` を使って画面遷移を行なっているので、`prepare`メソッド内で遷移先のクラスにアクセスし、そこに値を入れています。
322
+
323
+
324
+
325
+ もちろん、これ以外にもいろいろなパターンが考えられると思いますが、ひとつの参考にしていただければと思います。