【发布时间】:2016-05-22 11:04:57
【问题描述】:
我正在使用委托方法在两个视图控制器之间成功地传回数据。
第一个视图控制器是“Review”屏幕,第二个是“Edit”屏幕,主要包含一个 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)
}
}
【问题讨论】:
标签: swift delegates uitextview