2012-04-21 2 views
0

저는 작업중인 게임의 여러 부분에 대해 여러 개의보기 컨트롤러를 가지고 있는데, 1,2,3,4 스크린을 호출 해 봅시다.프로그래밍 방식으로 iPhone ViewController 사이에서 전환하기

화면 1에서 게임을 시작한 다음 2, 3, 4를 표시하고 다시 1 번 화면으로 돌아가서 처음부터 다시 시작할 수 있기를 바랍니다 (때로는 # 3 등을 남기고 싶음) . UITabBarController를 사용하여이 기능을 사용할 수 있었지만 탭 컨트롤 자체를 숨기는 방법을 알지 못했습니다. 실제 컨트롤을 숨기면 그 자리에 흰색 막대가 표시됩니다. 첫 화면에서 작업 한보기의 크기를 조정하려고하면 다른 화면 크기가 두 배인 것처럼 보입니다 (viewWillAppear에서 설정 됨).

[[self view] setFrame : [[UIScreen mainScreen] bounds]];

아무도 이런 종류의 일을 할 수 있었습니까? 이 작업을 수행하기 위해 내비게이션 컨트롤러를 사용할 수 있습니까?

답변

0

고객님의 목적에 따라 UITabBarController 대신 UINavigationController을 사용할 수 있기 때문에 UINavigationController을 사용하시기 바랍니다.

하지만 UITabBarController을 계속하려는 경우 다음 당신은 당신의 app delegate이 메소드를 호출하여 UITabBarController을 숨길 수는 :

- (void) hideTabBar:(UITabBarController *) tabbarcontroller { 

    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:0.5]; 
    for(UIView *view in tabbarcontroller.view.subviews) 
    { 
     if([view isKindOfClass:[UITabBar class]]) 
     { 
      [view setFrame:CGRectMake(view.frame.origin.x, 480, view.frame.size.width, view.frame.size.height)]; 
     } 
     else 
     { 
      [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 480)]; 
     } 

    } 

    [UIView commitAnimations]; 

} 
+0

귀하의 제안은 완벽했다! 이것은 나를 추적하는 데 몇 시간이 걸렸습니다. 당신의 도움에 많은 도움을 주셔서 감사합니다! – Damian

관련 문제