2012-12-12 2 views
0

내 두 UIController간에 전환 효과를 추가하려고합니다. 그들 사이의 전환 완벽하게 작동하지만 좋은 전환 효과를 추가하고 싶습니다.UIViewController와 UITabBarViewController 사이에 전환 효과 추가

이 내 AppDelegate.m

@implementation LaMetro_88AppDelegate 

@synthesize window = _window; 
@synthesize tabBarController = _tabBarController; 
@synthesize LoadingViewController = _LoadingViewController; 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 

    self.window.rootViewController = self.LoadingViewController; 
    [self.window addSubview:tabBarController.view]; 
    [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(changeView) userInfo:nil repeats:NO]; 


    [self.window makeKeyAndVisible]; 
    return YES; 
} 

-(void)changeView 
{ 

    self.window.rootViewController = self.tabBarController; 

} 

이 코드는 컨트롤러와의 작업을 잘 사이의 스위치를 수행합니다.

답변

0

전환 애니메이션을 사용하려면 탭 표시 줄 컨트롤러를 제시해야합니다. 이런 식 (I이 테스트를하지 않은 경우) 시도 : 코드를 보면

self.tabBarController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; // your choice here 
self.window.rootViewController presentViewController:self.tabBarController animated:YES completion:^{}]; 

을, 당신이 시작 VC를 제시 할 것을 수 있습니다. 로고를 제시하기 만하면 타이머 접근 방식이 괜찮습니다. (하지만 performSelector : withObject : afterDelay : 타이머를 숨기는 것이 더 예쁜 방법입니다).

앱을 실행할 준비가되기 전에 (예 : 로그인 또는 비동기 적으로 처리하기에 충분한 시간이 소요되는) 스플래시 VC가 어떤 작업을 수행해야하는 경우 this approach I suggest을 확인하십시오.

+0

대단히 감사합니다! 네, 응용 프로그램의 로딩 상태를 시뮬레이트하는 회 전자와 함께 스플래시 화면 뒤에 로딩보기를 수행하려고합니다. 첫 번째 줄을 올바르게 제공 한 코드 아이디어는 "presentViewController"대신 두 번째 "presentModalViewController"이어야하며 "completition :^{}"는 생략해야합니다. 시간 내 줘서 고마워! –

+0

도움이 되니 기쁩니다. SDK> = 5.1에서 presentModalViewController는 더 이상 사용되지 않으며 내가 제안한 호출로 대체되었습니다. – danh