こんにちは私は、私がやっていることが最良の選択肢がスウィフトであるかどうかを確認するためにここに来ました。私はviewcontroller1から提示するView Controllerを持っています。 viewcontroller2にはテキストフィールドがあり、テキストがいっぱいになると、テキストを自分のシングルトンに保存し、そのテキストをデータベースに保存し、ビューコントローラ1のuilabelsをそれらのラベルで更新するプロトコルを通じてビューコントローラ1でアクションを開始します私はビューコントローラ2を却下する。ビューコントローラ1のビューコントローラ2から関数を呼び出して、シングルトンのデータをデータベースに保存します。これはいいですか?ご不明な点がございましたら、お気軽にお問い合わせください。別のビューコントローラからのビューコントローラのトリガアクション
class ViewController1: UIViewController, EditProtocol{
var label = UIlabel()
@IBAction func Editname(_ sender: Any) {
if let vc = storyboard.instantiateViewController(withIdentifier: "ViewController2Identifier") as? ViewController2{
vc.controller = self
vc.modalPresentationStyle = .custom
vc.modalTransitionStyle = .crossDissolve
vc.setViewControllers([ProductInformation], animated: true)
self.present(vc, animated:true, completion: nil)
}
}
func SaveName() {
label.text = singleton.shared.text
}
protocol EditProtocol {
func SaveName()
}
class ViewController2: UIViewController{
var controller: EditProtocol?
@IBOutlet weak var Name: UITextField!
@IBAction func Back(_ sender: AnyObject) {
singleton.shared.text = Name.text
controller?. SaveName()
self.dismiss(animated: true, completion: nil)
}
}
https://stackoverflow.com/a/30541063/2303865 –