2012-03-21 4 views
0

In ViewController 1 ViewController 2에있는 "changeButtonMessage"함수를 호출하여 UILabel의 텍스트를 변경해야합니다. 함수가 호출되고 있지만 NSLog는 작동하지만 레이블은 변경되지 않습니다. 어떤 도움을 주셔서 감사합니다.다른 뷰 컨트롤러에서 함수 호출

UIViewController.view 속성이 아직 액세스되지 않은 경우 개체를 만든 2

@property (nonatomic, retain) IBOutlet UILabel *loadingtxt; 
- (IBAction)changeButtonMessage:(id)sender; 

@synthesize loadingtxt; 

-(void)changeButtonMessage: (NSString*) newMessage { 

    loadingtxt.text = newMessage; 
    NSLog(@"Change label to %@",newMessage); 

} 

답변

0

의 ViewController 1

loadingViewController *controller; 
controller = [[loadingViewController alloc] init]; 
NSString *mymsg = [NSString stringWithFormat: @"Loading"]; 
[controller changeButtonMessage:mymsg]; 

의 ViewController가 (ALLOC, 초기화)하지만보기가 실제로 외설 로드되지 않고 서브 뷰가로드되지 않았습니다.

로딩 텍트는 아마도 nil 일 것입니다. 디버깅 또는 NSLog로 확인할 수 있습니다. 에는 loadView 또는 viewDidLoad에 당신은 당신의 뷰 컨트롤러를 만드는 방법은 무엇 UIViewController에

에 호출 된 때까지 유효하지 않습니다

? 스토리 보드? Nib 파일?

+0

답장을 보내 주셔서 감사합니다. View Controller는 ViewController1의 ViewDidLoad에서 ModalViewController'loadingViewController * loadingView = [[[loadingViewController alloc] init] autorelease]로 생성됩니다. loadingView.modalPresentationStyle = UIModalPresentationFormSheet; [self presentModalViewController : loadingView animated : NO]; ' – user1104325

+0

그리고 뷰 컨트롤러에서 뷰를 어떻게 만듭니 까? 연관된 nib 파일이있는 경우 initWithNibName init 메소드를 사용해야 할 수도 있습니다 ... 다시 디버깅하고 txt로드가 nil인지 확인 했습니까? – bandejapaisa

관련 문제