2010-03-29 9 views
0

내 기본 프레임 워크로 Cocos2D를 사용하고 있습니다.창에서보기를 제거하는 방법은 무엇입니까?

window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
TargetPlayerViewController *myController = [[TargetPlayerViewController alloc]initWithNibName:@"TargetPlayerViewController" bundle:nil]; 
[window addSubview:[myController view]]; 
[window makeKeyAndVisible]; 

이 예상대로 작동하고, TargetPlayerViewController을 보여줍니다 : 경우에, 나는적인 Cocos2D는 nib 파일을로드하고 그보기를 할 수 있습니다 싶습니다. 훌륭한!

내가 알아야 할 것은 뷰가로드되고 나면 뷰 자체를 제거 할 수 있습니까? 몇 가지 방법을 시도했지만 모두 프로그램이 충돌하게됩니다.

- (IBAction)GTFOnow:(id)sender { 
    NSLog(@"GFTO"); 
    //window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    //[self.view removeFromSuperview]; 
    //[window makeKeyAndVisible]; 
} 

GTFOnow가 TargetPlayerViewController의 방법이다 :

내가이 방법을 유발하는 설정 뷰의 버튼을 테스트합니다. 호출 될 때, 현재 서브 뷰 (위의 Cocos2D 코드에서 호출 된)는 창에서 제거되어야합니다.

+0

"이 방법에서는보기 자체에서보기가 제거되어야합니다". 이것은 매우 혼란 스럽습니다. 뷰 컨트롤러가 윈도우에서 뷰를 제거해야한다고 가정합니다. – Felixyz

답변

0

우선, 하위보기를 제거하기 때문에 새 창을 만들면 안됩니다. 둘째, 다른 일이 발생해도 앱이 다운되지 않아야합니다. 어떤 수업에 GTFOnow 방법이 있습니까? 나는 TargetPlayerViewController 클래스에서 가정합니까?

+0

GTFOnow 메서드는 TargetPlayerViewController에 있습니다. 나는 그 광경이 창문에서 스스로 벗어날 수 있기를 바랬다. –

+0

예보기를 창에서 제거 할 수 있습니다 (제거하는 컨트롤러이기는하지만 실제로 "자체"를 제거하지는 않습니다). 그러나이 코드에서와 같이 새 창을 만들 필요는 없습니다. 대신 시작시 App Delegate에서 생성 된 윈도우에 대한 참조를 얻을 필요가 있습니다. 그것은 뷰가 자식이며 그 뷰를 제거하려는 창입니다. 일반적으로 iPhone 응용 프로그램에서 두 번째 창을 만드는 경우는 거의 없습니다. – Felixyz

관련 문제