2012-07-09 46 views
0

我试图设置和检索titleViewController上的UITextField对象中的文本。从另一个对象设置文本字段ios

我有一个Journal对象有一个对titleViewController对象的引用,但我似乎无法设置UITextField的文本值。

我在titleViewController中有一个UITextField对象的插口,而Journal可以看到它,但是当我写代码来设置该值时,它在运行时不会发生任何事情。

在XCode或Log中没有弹出的错误。我知道它应该能够工作,因为这个设置可以用于访问由同一个日志管理的其他此类viewController中的自定义方法。

CNC中

这里是作为所请求的代码示例:

//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用于在滚动视图中显示视图,并且我没有以这种方式从ViewControllers访问方法的问题。

我想要做的就是让Journal.m设置并读取来自textName的值,它是连接到UITextField的插座。

-UPDATE-

我检查,我发现我可以阅读文本字段的值,但不写它。

-FINAL UPDATE-

我发现问题与我的代码。代码是正确的(减去Tomy211的修正),但问题出在我调用代码的地方。我在显示视图之前调用了该方法,因此当视图显示时,它会恢复为默认值。

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

+0

请编辑此帖以显示您尝试过的代码,并详细说明您期望发生的事情与实际发生的事情,以便我们能够更好地为您提供帮助。 – 2012-07-09 21:41:32

+0

添加了代码以及我正在尝试执行的操作。截至目前,该代码什么都不做,并且没有任何错误。它没有语法错误,并且没有运行时错误。 – RMDan 2012-07-09 22:20:43

+0

你确定在故事板中正确地分配了'textName'插座吗? – KDaker 2012-07-09 23:35:51

回答

0

问题是我试图在视图加载之前更新TextField对象。 将方法调用移至点加载视图后修复问题。我已经更新了我的问题,以反映什么是正确的,什么是不正确的。

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

相关问题