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

質問編集履歴

2

変更

2018/06/23 02:27

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -17,7 +17,7 @@
17
17
 
18
18
 
19
19
  //textFieldのあるモーダルビュー(ModalViewController)を追記しました。
20
-
20
+ [参考にしたドキュメントです](https://picolica.com/2017/04/04/swift3-get-from-modalview/)
21
21
  ```ここに言語を入力
22
22
 
23
23
 

1

変更

2018/06/23 02:27

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -13,4 +13,112 @@
13
13
  プロトコルにUITextFieldDelegateを追加していますが、閉じません。
14
14
  調べていますが、原因がわからないため質問します。
15
15
 
16
- よろしくお願いします。
16
+ よろしくお願いします。
17
+
18
+
19
+ //textFieldのあるモーダルビュー(ModalViewController)を追記しました。
20
+
21
+ ```ここに言語を入力
22
+
23
+
24
+ import UIKit
25
+
26
+ class ModalViewController: UIViewController, UITextFieldDelegate {
27
+
28
+ var changeButton = UIButton()
29
+ var textField = UITextField()
30
+
31
+ override func viewDidLoad() {
32
+ super.viewDidLoad()
33
+ set()
34
+ }
35
+
36
+
37
+ func set() {
38
+ view.backgroundColor = .gray
39
+
40
+ let cancelButton = UIButton(frame: CGRect(x: 0, y: 0, width: 100, height: 30))
41
+ cancelButton.center = CGPoint(x: view.center.x - 100, y: view.center.y)
42
+ cancelButton.setTitle("キャンセル", for: .normal)
43
+ cancelButton.setTitleColor(UIColor.black, for: .normal)
44
+ cancelButton.addTarget(self, action: #selector(pushDismiss(sender:)), for: .touchUpInside)
45
+ view.addSubview(cancelButton)
46
+
47
+
48
+ //
49
+
50
+
51
+ changeButton = UIButton(frame: CGRect(x: 0, y: 0, width: 100, height: 30))
52
+ changeButton.center = CGPoint(x: view.center.x + 100, y: view.center.y)
53
+ changeButton.setTitle("変更", for: .normal)
54
+ changeButton.setTitleColor(UIColor.black, for: .normal)
55
+ changeButton.addTarget(self, action: #selector(pushChange(sender:)), for: .touchUpInside)
56
+
57
+ changeButton.isEnabled = false
58
+ view.addSubview(changeButton)
59
+
60
+ textField.delegate = self
61
+ textField.text = ""
62
+
63
+ textField = UITextField(frame: CGRect(x: 0, y: 0, width: view.bounds.width - 20, height: 30))
64
+ textField.center = CGPoint(x: view.center.x, y: view.center.y + 50)
65
+ textField.placeholder = "入力してね"
66
+ textField.backgroundColor = .white
67
+ view.addSubview(textField)
68
+
69
+
70
+
71
+
72
+ let center = NotificationCenter.default
73
+
74
+ center.addObserver(・省略してます)
75
+ }
76
+
77
+
78
+
79
+ @objc func textFieldDidChange(notification: NSNotification) {
80
+
81
+ if textField.text == "" {
82
+ changeButton.isEnabled = false
83
+ } else {
84
+ changeButton.isEnabled = true
85
+ }
86
+ }
87
+
88
+
89
+
90
+
91
+ func textFieldShouldReturn(_ textField: UITextField) -> Bool {
92
+ DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
93
+
94
+ self.view.resignFirstResponder()
95
+ }
96
+ return true
97
+
98
+ }
99
+
100
+
101
+
102
+ //変更
103
+
104
+ @objc func pushChange(sender:UIButton) {
105
+
106
+ textField.resignFirstResponder()
107
+
108
+ let originVc = presentingViewController as! HomeViewController
109
+ originVc.textFromModal = textField.text!
110
+
111
+ self.dismiss(animated: true, completion: nil)
112
+ }
113
+
114
+
115
+
116
+ //キャンセル
117
+ @objc func pushDismiss(sender:UIButton) {
118
+ self.dismiss(animated: true, completion: nil)
119
+ }
120
+
121
+ }
122
+
123
+
124
+ ```