1) '코드가 실행되지 않습니다'라고 말하면 어떻게됩니까? 즉, NSLog를 applicationDidBecomeActive :에 넣었을 때 setLabel에 코드가 실행되었음을 표시합니까?
2) 코드가 실행되고있는 것으로 의심됩니다. 그러나 귀하의 코드는 "그 시점에 어떤 뷰 컨트롤러가 열려 있더라도 카운터를 표시하지 않습니다". 코드에서 새보기 (view1)를 작성하지만 해당보기는 표시되지 않습니다. 그것은 서브 뷰로 추가되지 않습니다. 코드도 누출됩니다. W1G1 개체를 만들지 만 결코 풀어 놓지 않으며 사용자가 가지고있는 참조를 버립니다.
원하는 것을 얻기 위해 응용 프로그램 창에 하위보기를 추가 할 수 있습니다. 앱 위임은 다음과 같은 트릭해야한다, 설정 방법을 따라 : W1G1에서 다음
counter++;
W1G1 *viewController1 = [[W1G1 alloc] initWithNibName:@"W1G1" bundle:nil];
[viewController1 setlabel: counter];
[[self window] addSubview: [viewController1 view]]
// you'll want to save a reference to the viewController somehow so you can release it at a later date
을
있습니다
- (void) setlabel: (int) counter;
{
NSString *string = [NSString stringWithFormat:@"%d", counter];
vocabword.text = string;
}
물론, 다른 방법의 많은 당신은이쪽으로 걸릴 수 있습니다 문제. 그리고 어떤 단계에서 추가하는 W1G1보기를 제거하기위한 전략이 필요합니다. 그렇지 않으면 점점 더 많은보기가 추가됩니다.
업데이트 : appControlroller를 추적하는 방법에 대한 의견을 묻습니다. appDelegate에서 추적하는 방법 중 하나는 appDelegate에서 추적하는 것입니다. didFinishLaunchingWithOptions : 다음의 ViewController를 만들, 그것을 참조하고 해당보기를 추가하는 속성을 설정하는 .m 파일에서
@class W1G1;
@interface MyAppDelegate : : NSObject <UIApplicationDelegate>
{
// other decelerations
int counter;
W1G1 * _myW1G1
}
@property (nonatomic, retain) W1G1* theW1G1
은 아마 응용 프로그램에서
@synthesize theW1G1 = _myW1G1;
을 포함한다 : 헤더에 뭔가를 가지고 뷰 계층 구조.
W1G1* theViewController = [[W1G! alloc] initWithNibName: @"W1G1" bundle: nil];
[[self window] addSubview: [theViewController view]];
[self setTheW1G1: theViewController];
[theViewController release];
그런 다음 앱 대리인과 함께 viewController에 다시 액세스하려면 [self theW1G1]을 사용합니다.
[[self W1G1] setlabel: counter];
의미를 :
다음 AppDelegate에 당신의
가하고 싶은거야? 오류가 있습니까? – jtbandes레이블이 변경되지 않습니다. 디버거를 통해 그것을 실행하고 코드 블록이 작동하고, 카운터와 문자열이 필요에 따라 업데이트되지만 레이블은 변경되지 않습니다. 그러나, 내 viewController에서 카운터 값을 확인할 때 업데이트 된 값을 표시합니다. 그러나이 라벨은 전혀 업데이트되지 않습니다. – Prajoth
W1G1 UIViewController 하위 클래스 또는 UIView 하위 클래스 인 경우. 전자의 경우, 변수 이름 view1은 비정상적인 선택입니다. 게시 한 내용에서 명확하지 않은 점은 레이블이 뷰 계층 구조에 추가되는 방법입니다. 뷰 계층 구조에서 레이블이 전혀 업데이트되지 않습니까? – Obliquely