Я успешно передаю данные между двумя контроллерами представления, используя метод делегата.Метод делегата для передачи данных вперед
Первый контроллер просмотра - это экран «Обзор», а второй - экран «Редактировать», в котором в основном содержится UITextView.
Когда я изменяю содержимое текстового вида на экране редактирования и ударяю его, он успешно переходит на экран обзора. Однако, когда я вернусь на экран редактирования, UITextView пуст.
Как я могу убедиться, что экран редактирования сохраняет значение, которое хранится в делегате?
Спасибо, что нашли время, чтобы посмотреть.
Обзор View Controller
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
}
}
Edit View Controller
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)
}
}