我试图在titleViewController上的UITextField
对象中设置和检索文本。
我有一个Journal对象,它引用了titleViewController对象,但我似乎无法设置UITextField
的文本值。
我在titleViewController中有一个UITextField对象的出口,而Journal可以看到它,但是当我写代码来设置值时,它运行时没有任何反应。
XCode或日志中没有弹出错误。我知道它应该工作,因为该设置适用于访问由同一期刊管理的其他此类viewControllers中的自定义方法。
- 编辑 -
以下是所请求的代码示例:
//Get viewController from Array
TitleVC *titlePage = [_PageArray objectAtIndex:0];
//Get string from Dictionary
NSString *test = [_saveDictionary objectForKey:@"Name"];
//This is one of the attempts to set the UITextField
//FIXED by Tomy211(but still does not work)
[titlePage.textName setText:test];
//This is attempting dot notation
titlePage.textName.text = test
titlePage.textName = test //Wrong I know but had to test
//Also made sure test was a proper string
NSLog(test) //Displayed "Dan" as Expected
这是在Journal.m中,它使用以下代码从故事板访问titleVC的引用:
-(UIViewController *)loadView:(NSString *)viewID{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:viewID];
return viewController;
}
从该方法返回的ViewController用于在scrollview中显示View,我没有遇到以这种方式从ViewControllers访问方法的问题。
我想要做的就是让Journal.m设置并读取textName的值,该值是连接到UITextField
的插座。
-UPDATE-
我检查并发现我可以读取textField的值但不能写入它。
-FINAL UPDATE -
我发现我的代码存在问题。代码是正确的(减去Tomy211的更正),但问题是我调用代码的地方。我在显示视图之前调用了该方法,因此当视图显示时,它将恢复为默认值。
注意所有有类似问题的人: 在更新视图的UIObject部分的值之前,请检查以确保显示视图。如果必须在未显示视图的情况下更新值,请使用实例变量并让UIObject在viewDidLoad方法中从中获取它们的值。
答案 0 :(得分:0)
问题是我在加载视图之前尝试更新TextField对象。 将方法调用移动到加载视图的点后,可以解决问题。我已经更新了我的问题,以反映哪些是正确的,哪些是不正确的。
注意所有有类似问题的人:检查以确保在更新视图的UIObject部分的值之前显示视图。如果必须在未显示视图的情况下更新值,请使用实例变量并让UIObject在viewDidLoad方法中从中获取它们的值。