2014-01-31 3 views
0

자신을 발견 한 상황은 다음과 같습니다.보기 컨트롤러를 서로 연결하거나 한 번만 초기화하십시오.

AppDelegate에서 배경을 입력 할 때 SKView를 일시 중지 할 수 있도록 나중에보기 컨트롤러에서 만들고있는 SKView에 액세스 할 수 있어야합니다. 내가 할 수있는 것으로 알고있는 유일한 방법은 AppDelegate 내에서 SKView를 만든 다음 나중에 속성으로 사용하는보기 컨트롤러 내에서 설정하는 것입니다. 단점은 그것이 처음 생성 될 때까지 아무 것도 설정하지 않은 뷰가 존재하지 않는다는 것입니다. 그래서 결과적으로 저는 다음과 같은 일을합니다. SceneViewController 내

@property (nonatomic, strong) SKView *skView; 
. 
. 
. 
self.skView = [[SKView alloc] init]; 
SceneViewController *svc = [[SceneViewController alloc] initWithNibName:nil bundle:nil]; 
[svc setSkview:self.skView]; 

내가있는 한

@property (nonatomic, strong) IBOutlet SKView *skview; 

질문이 정말 함께 IBOutlet입니다 속성에 모두 강한 설정을해야합니까? 또한 내가하는 일을하는 것보다 더 좋은 방법이 있습니다.

같은 방식으로 SceneViewController를 다른 뷰 컨트롤러에 전달하여 적절한 시점에 뷰를 표시 할 수 있도록 참조를 얻을 수도 있습니다. 위의 문제에 대한 해답도 도움이 될 것입니다.

답변

1

가 왜 소유 뷰 컨트롤러에 UIApplicationWillResignActiveNotification을 수신하지 ... 조정 뷰 컨트롤러이 참조 SKView 그리고 그것에 잠시 멈춰라.

0

클래스의 한 순간을 보장하기 위해 싱글 톤을 만듭니다.

+(SKView *)singleton 
{ 
    static SKView *shared = nil; 

    if(shared == nil) 
    { 
     shared = [[SKView alloc] init]; 
    } 

    return shared; 
} 
관련 문제