问题是,当我执行某些操作时,例如输入@“Hallo”,并在不打开的控制器上输入UITextField的代码,UITextField仍为空,但如果我之前已经打开它,则UITextField将变为“喂“
像这样的程序+(void)MakeController2LblTextIsLikeMyStringAtController1{
Controller2.lblText.text=MyString;
}
如果我在调用此方法之前从未加载过Controller2。 Controller2.lblText.text仍为null,但如果我没有加载Controller2,则lblText.text将为isEqual MyString。
问题是,如果我有20-50个不同的Controller,如何在启动启动应用程序中加载所有它?如何强制打开视图控制器以编程方式加载?
答案 0 :(得分:1)
请勿在启动时加载所有视图控制器。如果您尝试,操作系统会因内存使用情况而将您赶出去。相反,请考虑正确实现MVC范例。您需要在另一个视图控制器中访问UILabel,这表明您的应用程序结构不太合适。
答案 1 :(得分:0)
对不起,您认为如何将一些文本分配给甚至不存在的UITextField?当您分配并初始化控制器(任何类)时,也会创建(初始化)其属性,因此您可以访问它们。你必须记住,没有办法访问不存在的东西或其属性。 加载([alloc init])后,为什么你可以访问它们可能是因为你没有释放它们。这很简单。 如果你想在启动时加载所有这些,你可以拥有一个所有Controller类的数组,并让foreach循环遍历它并逐个[alloc init]它们。但是,由于我并不知道您的应用程序的用途,建议的方法可能与您的情况无关。这只是一种做你想做的事情。