デリゲートメソッドを使用して2つのビューコントローラ間でデータを正常に渡しています。デリゲートメソッドでデータを渡す
最初のビューコントローラは「レビュー」画面で、2番目のビューコントローラは主にUITextViewを含む「編集」画面です。
編集画面でテキストビューの内容を変更してヒットセーブすると、正常にレビュー画面に渡ります。しかし、編集画面に戻ると、UITextViewは空です。
編集画面にデリゲートに格納されている値が保持されるようにするにはどうすればよいですか?
時間を割いていただきありがとうございます。
レビュー・ビュー・コントローラ
class AddCampaignViewController: UIViewController, UINavigationControllerDelegate, UIImagePickerControllerDelegate, UITextFieldDelegate, TitleViewDelegate {
@IBOutlet var titleSubtitle: UILabel!
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "AddTitleViewController" {
let addTitleViewController = segue.destinationViewController as! AddTitleViewController
addTitleViewController.delegate = self
}
}
override func viewDidLoad() {
super.viewDidLoad()
}
func setCampaignTitle(campaignTitle: String) {
titleSubtitle.text = campaignTitle
}
}
編集ビューコントローラ
protocol TitleViewDelegate {
func setCampaignTitle(campaignTitle: String)
}
class AddTitleViewController: UIViewController, UITextViewDelegate {
var delegate : TitleViewDelegate!
var campaignTitle : String!
@IBOutlet var titleTextView: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
titleTextView.becomeFirstResponder()
let logButton : UIBarButtonItem = UIBarButtonItem(title: "Save", style: UIBarButtonItemStyle.Plain, target: self, action: "saveTitle:")
self.navigationItem.rightBarButtonItem = logButton
}
func saveTitle(sender: UIBarButtonItem) {
delegate.setCampaignTitle(titleTextView.text!)
self.navigationController?.popViewControllerAnimated(true)
}
}