returnキーで生成したはずのtextfieldが画面に追加されない
textFieldShouldReturn
を使って、textfield
を新たに生成するコードを作りたいのですが、新しいtextfield
が画面(正確には、ポップアップ遷移先のビューAddTaskView
)に追加されません。どのようにすれば追加されるようになるでしょうか。
今までのtextfield
を含む配列AllTF
の要素の数をタイトルとするボタン(addAllTask
)には、新しく生成したtextfield
の分が反映されているので、生成はされているはずなのですが、、、、
なお、操作は全て、ポップアップで画面遷移した遷移先のAddTaskViewController
で行われています。また、TF1
やaddAllTask
、新しく追加したいtextfield
は全てAddTaskView
上のものです。
以下、コードを掲載します。
回答して頂けたら幸いです。
import UIKit
class AddTaskViewController: UIViewController, UITextFieldDelegate{
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
TF1.delegate = self
addAllTask.setTitle("タスクを1項目追加", for: .normal)
AllTF.append(TF1)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBOutlet weak var AddTaskView: UIView!
@IBOutlet weak var addAllTask: UIButton!
@IBOutlet weak var TF1: UITextField!
var AllTF: [UITextField] = []
var nextTF: UITextField!
func textFieldShouldReturn(_ textField: UITextField) -> Bool
{
let numberOfTF = AllTF.count
textField.resignFirstResponder()
createNewTF(parameter: numberOfTF)
return true
}
func createNewTF(parameter: Int)
{
let width = Int(TF1.frame.width)
let height = Int(TF1.frame.height)
let X = Int(TF1.frame.origin.x)
let Y = Int(TF1.frame.origin.y) + (height + 10) * parameter
nextTF = UITextField(frame: CGRect(x: X, y: Y, width: width, height: height))
self.AddTaskView.addSubview(nextTF)
AllTF.append(nextTF)
nextTF.delegate = self
addAllTask.setTitle("タスクを\(AllTF.count)項目追加", for: .normal)
}
}