2013-01-22 129 views
1

我有这个需要设置UILabel文本的XML解析器类。由于某种原因,当我从XML解析类调用我的外部(我的外部自定义方法位于ViewController中)自定义方法时,我不能更改标签文本。任何其他类似NSLogging工作或UIAlert工程。
代码即时试图做到这一点的:
XML解析类设置UILabel文本不工作?

-(void) parser:(NSXMLParser *) parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{ 
    if([elementName isEqualToString:@"names"]){ 
     NSLog(@"Found names body"); 

    } 
    else if ([elementName isEqualToString:@"user"]){ 

array = [attributeDict objectForKey:@"nameofuser"]; 
     ViewController * main = [[ViewController alloc] init]; 
     [main outputToLabel:array]; 

    } 
    NSLog(@"Reading value: %@", elementName); 
} 


这是我的ViewController自定义的方法:

-(void) outputToLabel:(NSArray *) dict{ 

    NSLog(@"seting %@ srcds", dict); 
    // XML stuff here \/ 

NSLog(@"%@", dict); 

       //     /\ 

    this.text = @"Complete"; 
} 

它正确地NSLogs出来的价值观和一切......我只是不能设置标签文本。我可以在viewDidLoad中使用该代码,它工作正常。有任何想法吗?

回答

1
ViewController * main = [[ViewController alloc] init]; 
    [main outputToLabel:array]; 

您正在创建ViewController的新实例并在其中设置标签。此操作不会影响ViewController的“真实”实例。

+0

那么....我该如何使它为我的UILabel设置文本?谢谢! –

+2

@JamerTheProgrammer - 考虑一下。你在那边有一个物体,就是屏幕上显示的物体。在这里创建一个新对象并不好。你必须以某种方式获得对象的地址 - 将其作为参数传递,作为全局变量访问它,等等。在这里搜索“如何在视图控制器之间传递参数”以及类似的问题,你会发现这是一个非常普遍(和无聊)的问题(甚至是一个熟练的程序员也不需要问)。 –

+0

好的。感谢答案和患者。 –