更改UIpopoverViewController的标签

时间:2015-10-07 18:49:48

标签: swift

在我的MainView上我有一个按钮。单击按钮,将显示popoverView。 我的popoverView是UIViewController的子类。在这个popoverView我也有一个按钮。当我点击该按钮时,我想更改popoverView的标签:

 @IBAction func awayClicked(sender: AnyObject) {
 awayLabel.text! = "\(Int(arc4random_uniform(7)))"
 }

但标签将在短期内更改,之后会降至之前的价值。问题在哪里?

2 个答案:

答案 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}

            }