2016-07-31 2 views
-1

저는 GameEndViewController라는보기 컨트롤러를 표시하려고 애쓰며, SKTene PlayGameScene의 자동 레이아웃을 사용하여 som 버튼과 레이블로 main.storyboard에서 만들었습니다. NSNotificationCenter를 사용하여 GameViewController를 GameEndViewController로 만드는 방법을 모르겠습니다.SKScene에서 main.storybord로 만든 또 다른보기 컨트롤러 장면

누구나 NSNotificationCenter를 사용하여 PlayGameScene에서 GameEndViewController를 신속하게 제공하거나 나에게 배울 수있는 사이트에 링크하는 방법을 알려 줄 수 있습니까?

미리 감사드립니다.

+0

너무 광범위 : 가능한 답변이 너무 많거나 좋은 답변은이 형식에 비해 너무 길어집니다. 답변을 좁히거나 몇 단락에서 대답 할 수있는 문제를 찾아내는 데 대한 세부 정보를 추가하십시오. –

답변

0

NSNotificationCenter를 사용하여 새로운보기를 제공하지 않습니다. NSNotifications는 앱의 한 부분에 사용되어 앱의 다른 부분에 비동기가 발생했음을 알려주지 만 사용자가 요청한 것과 같지는 않습니다.

게임이 종료되었을 때 새로운보기 컨트롤러를 표시하려면 스토리 보드에서 해당 세그먼트를 만들고 해당 세그먼트를 프로그래밍 방식으로 in this SO answer과 같이 트리거하십시오.

그러나 대체로 동일한보기 컨트롤러에 남아서 SKView에 '게임 종료'SKSCene을 표시하는 것이 더 나은 사용자 환경을 제공 할 수 있습니다.

0

나는 NSNotificationCenter를 사용하여 SKScene의 뷰 컨트롤러에게 스토리 보드에 생성 된 세그먼트를 트리거하여 뷰를 변경하도록 알릴 수 있음을 알았습니다.

NSNotificationCenter.defaultCenter().addObserver(self, selector: "showGameEndViewController", name: "showGameEndViewController", object: nil) 
} 
func showGameEndViewController() -> Void { 
    performSegueWithIdentifier("gameOverSegue", sender: nil) 
} 

NSNotificationCenter 메시지에 대한 수신기로 작동 :

은 내가 GameViewController에 다음 코드를 썼다.

다음 난 SKScene 송신자 코드 추가 :

 self.view?.presentScene(nil) 
    NSNotificationCenter.defaultCenter().postNotificationName("showGameEndViewController", object: nil) 

하고 마침내는 GameViewController 및 GameEndViewController 사이 main.storyboard에 SEGUE을 만들었다.