自定义视图标签无法更改

时间:2015-07-20 13:34:30

标签: ios swift uicontainerview

我的视图包含一个按钮,该按钮带有一个包含@IBAction func PushAlert(sender: UIButton) { let alert = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("alertViewController") as! AlertViewController var alertText = AlertTextViewController() alertText.lblText = "DONE" alert.modalPresentationStyle = UIModalPresentationStyle.OverCurrentContext alert.modalTransitionStyle = UIModalTransitionStyle.CrossDissolve self.presentViewController(alert, animated: true, completion: nil) } 的自定义视图,并且它有一个标签。当我将自定义视图放到前面时,我将标签文本清空。那么请问我的问题在哪里?

查看控制器代码:

class AlertTextViewController: UIViewController {

    @IBOutlet weak var lblAlertText: UILabel!
    var lblText = ""

    override func viewDidLoad() {
        super.viewDidLoad()

        lblAlertText.text = lblText
    }
}
#include <stdio.h>
#include <string.h>
void abc(char *, char *);
int main(int argc, char *argv[])
{
    char *p="Hello XYZ";
    char *q="ABC";
    abc(p,q);
    printf("%s", p);
}
void abc(char *p, char *q)
{
    p+=6;
    p=q;
}

我已经为源代码创建了一个更易于理解的链接source code

2 个答案:

答案 0 :(得分:0)

我认为您可能会遇到事件顺序问题。尝试在viewWillAppear中设置lblAlertText.text而不是viewDidLoad。

答案 1 :(得分:0)

lblText: String?中的var AlertTextViewController怎么样。

也许它被你的声明所覆盖(出于某种原因我无法解释)?

或等等,我感到困惑

var alertText = AlertTextViewController()

当您展示创建和呈现ViewController alert时。 alertTextalert有何关联?

编辑:

class AlertViewController: UIViewController {

@IBOutlet weak var container: UIView!

override func viewDidLoad() {
    super.viewDidLoad()
    var alertText: AlertTextViewController = self.childViewControllers[0] as! AlertTextViewController
    alertText.lblAlertText.text = "Test"
    // Do any additional setup after loading the view.
}

在AlertViewController中执行此操作,它可以正常工作。我不知道你的最终目的是什么,这可能不是最优雅的解决方案。我已经为你的班级创建了一个出口,即containerView。