2012-12-12 47 views
0

我試圖在兩個UIControllers之間添加轉換效果。他們之間的切換工作完美,但我想添加一個不錯的過渡效果。在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

爲了有一個過渡動畫,必須呈現標籤欄控制器。試着這樣說(我沒有測試過這一點):

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

非常感謝!是的,我試圖在啓動屏幕後用一個模擬應用程序加載狀態的微調器來執行加載視圖。你提供給我的代碼的想法是第一行是完美的,但是在第二行代碼中應該是「presentModalViewController」而不是「presentViewController」,並且應該忽略「completetition:^ {}」。謝謝你的時間! –

+0

很高興幫助。在SDK> = 5.1中,presentModalViewController已被棄用,並被我建議的調用取代。 – danh