在我的MainView上我有一个按钮。单击按钮,将显示popoverView。 我的popoverView是UIViewController的子类。在这个popoverView我也有一个按钮。当我点击该按钮时,我想更改popoverView的标签:
@IBAction func awayClicked(sender: AnyObject) {
awayLabel.text! = "\(Int(arc4random_uniform(7)))"
}
但标签将在短期内更改,之后会降至之前的价值。问题在哪里?
答案 0 :(得分:0)
如果要在故事板中设置此弹出窗口,则每次显示时都会创建视图控制器的新实例及其视图层次结构(包括标签)。如果您希望设置为标签文本的值在创建的实例之间保持不变,则必须将其存储在某处(可能在NSUserDefaults
中),并在将来再次加载视图时检索它(通常在覆盖UIViewController
viewWillAppear
方法。
答案 1 :(得分:0)
我认为这就是你要找的。如果它有帮助,请告诉我
@IBOutlet weak var textView: UITextView!
{
didSet
{
textView.text = text
}
}
var text : String = ""
{
didSet
{
textView?.text = text
}
}
override var preferredContentSize : CGSize
{
get
{
if textView != nil && presentingViewController != nil
{
return textView.sizeThatFits(presentingViewController!.view.bounds.size)
}
else
{
return super.preferredContentSize
}
}
set {super.preferredContentSize = newValue}
}