0

응용 프로그램 시작이 끝나면 AppDelegate에서 UITextView를 설정하려고합니다. 사실 저는 파일을 열고 UITextView에 내용을 전달하려고합니다. 내 AppDelegate에에서 다음AppDelegate에서 UI 변경하기

ViewController.h:

@interface 
{ 
    IBOutlet UITextView *textView; 
}  
- (void)openFile:(NSString *)myString; 

ViewController.m:

- (void)openFile:(NSString *)myString 
{ 
    textView.text = myString; 
} 

:

AppDelegate.m:

를 내의 ViewController에서

나는 다음과 같은 방법을 추가
#import "ViewController.h" 
@implementation AppDelegate 
- (BOOL)application: [...] didFinishLaunchingWithOptions: [...] 
{ 
    ViewController *test = [[ViewController alloc] init]; 
    [test openFile:@"this is a test"]; 
} 

내 AppDelegate에서 메서드를 호출하면 실제 호출되어 예상대로 문자열이 전달됩니다. NSLog(@"%@", myString);을 통해 테스트했습니다.

그러나 textView의 값은 변경되지 않습니다. 처음에는 다른 문제가있을 수 있다고 생각했기 때문에 뷰를로드 한 후에 UIButton을 사용하여 메서드를 호출했습니다.하지만 괜찮 았고 textView가 변경되었습니다.

그런 다음 AppDelegate에서 내 메서드를 호출 한 후 뷰가로드 될 수 있다고 생각했습니다. 몇개의 NSLog를 추가하고 뷰가 완전히로드되었다는 것을 알게되면 AppDelegate가 메서드를 호출합니다.

그래서 AppDelegate는 뷰가 완전히로드되고 String을 전달하면 [test openFile:(NSString *)]을 호출합니다. 하지만 내 textView의 가치는 변함이 없습니다.

이 문제에 대한 제안이 있으십니까? 누구든지 같은 문제에 부딪 혔습니까?

+2

콘센트가 NIB에 연결되어 있는지 다시 확인 했습니까? – pe8ter

+0

예, 했어요. 하지만이 필요를 위해 NIB에서 무엇을 연결해야합니까? 내가 응용 프로그램에서 그것을하고 싶기 때문에 시작을 마쳤다. 신경 쓰지 마. 나는 그 문제를 해결했다. 감사합니다 –

+0

제목을 태그하거나 해당 게시물에 서명하지 마십시오. –

답변

0

정확하게 필요한 것은 아닙니다. 하지만 당신은 나에게 올바른 생각을주었습니다. 감사합니다.

self.viewController = [[test3ViewController alloc] initWithNibName:@"YourXibName" bundle:nil]; 
self.window.rootViewController = self.viewController; 
[self.window makeKeyAndVisible]; 
[self.viewController openFile:@"Der Test"]; 
1

ViewController에 대한보기를로드하지 않습니다. 그래서 콘센트는 아무 것도 연결되어 있지 않습니다. 보기 및 ViewController NIB (xib) 파일에서로드하는 경우 ViewController 다른 인스턴스를 만들 필요가 없습니다. 이것이 새로운 ViewController를 할당하고 초기화 할 때 아무것도하지 않고 연결하는 새로운 인스턴스를 생성하는 것입니다.

IBOutlet이 있기 때문에 xib 파일이 있다고 가정합니다. 같은 것을 시도하십시오

- (BOOL)application: [...] didFinishLaunchingWithOptions: [...] 
{ 
    ViewController *test = [[ViewController alloc] initWithNibName:@"YourXibName" 
           boundle:nil ]; 
    [test openFile:@"this is a test"]; 
    self.window.rootViewController = test.view ; 
    [self.window makeKeyAndVisible]; 
    return YES; 
}