2013-01-22 1 views
1

UILabel의 텍스트를 설정해야하는이 XML 파서 클래스가 있습니다. 어떤 이유에서 외부 (내 외부 사용자 정의 메서드는 ViewController에 위치) XML 구문 분석 클래스에서 사용자 지정 메서드를 호출 할 때 레이블 텍스트를 변경할 수 없습니다. 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

확인. 대답과 환자 들께 고마워요. –

관련 문제