teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記しました

2018/04/27 21:30

投稿

newmt
newmt

スコア1277

answer CHANGED
@@ -7,4 +7,49 @@
7
7
  vc.fileName = "ファイル名"
8
8
  }
9
9
 
10
+ ```
11
+
12
+ 【追記】Delegateを使う方法
13
+
14
+ ```
15
+ // 子VC
16
+ protocol ChildViewControllerDelegate: class {
17
+ func getFileName(fileName: String)
18
+ }
19
+
20
+ import UIKit
21
+
22
+ class ChildViewController: UIViewController {
23
+
24
+ weak var delegate: ChildViewControllerDelegate?
25
+
26
+ // 例えばボタンを押した時にファイル名を取得する
27
+ @IBAction func buttonTapped(_ sender: UIButton) {
28
+
29
+ let fileName = ... // 何かしらの方法でファイル名を取得
30
+ delegate?.getFileName(fileName: fileName)
31
+ }
32
+ }
33
+ ```
34
+
35
+ ```
36
+ // 親VC
37
+ import UIKit
38
+
39
+ class ParentViewController: UIViewController , ChildViewControllerDelegate{
40
+
41
+ var child: ChildViewController!
42
+
43
+ override func viewDidLoad() {
44
+ super.viewDidLoad()
45
+
46
+ child = self.childViewControllers[0] as! ChildViewController
47
+ child.delegate = self
48
+ }
49
+
50
+ // ChildViewControllerDelegateのメソッド
51
+ func getFileName(fileName: String) {
52
+ // 取得したファイル名に対する処理
53
+ }
54
+ }
10
55
  ```

1

修正しました。

2018/04/27 21:30

投稿

newmt
newmt

スコア1277

answer CHANGED
@@ -2,7 +2,7 @@
2
2
  ContainerViewなので下記の方法で親VCが参照できると思います。
3
3
 
4
4
  ```
5
- if vc = self.parent as? 親VC {
5
+ if let vc = self.parent as? 親VC {
6
6
  // 親VCにfileNameという変数を宣言しているとします。
7
7
  vc.fileName = "ファイル名"
8
8
  }