从另一个对象ios设置文本字段

时间:2012-07-09 21:02:20

标签: objective-c ios xcode uiviewcontroller uitextfield

我试图在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方法中从中获取它们的值。

1 个答案:

答案 0 :(得分:0)

问题是我在加载视图之前尝试更新TextField对象。 将方法调用移动到加载视图的点后,可以解决问题。我已经更新了我的问题,以反映哪些是正确的,哪些是不正确的。

注意所有有类似问题的人:检查以确保在更新视图的UIObject部分的值之前显示视图。如果必须在未显示视图的情况下更新值,请使用实例变量并让UIObject在viewDidLoad方法中从中获取它们的值。