我的视图包含一个按钮,该按钮带有一个包含@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
答案 0 :(得分:0)
我认为您可能会遇到事件顺序问题。尝试在viewWillAppear中设置lblAlertText.text而不是viewDidLoad。
答案 1 :(得分:0)
lblText: String?
中的var AlertTextViewController
怎么样。
也许它被你的声明所覆盖(出于某种原因我无法解释)?
或等等,我感到困惑
var alertText = AlertTextViewController()
当您展示创建和呈现ViewController alert
时。 alertText
和alert
有何关联?
编辑:
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。