0

我试图在我的两个 UIControllers 之间添加一个过渡效果。它们之间的切换效果很好,但我想添加一个很好的过渡效果。

这是我的 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;   

}

此代码在控制器之间进行切换并正常工作。

4

1 回答 1

0

为了有过渡动画,必须呈现标签栏控制器。试试这种方式(我没有测试过):

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

查看您的代码,您可能想展示一个splash vc。如果它只需要在那里展示一个标志,那么计时器方法是可以的。(不过,您可能需要考虑 performSelector:withObject:afterDelay: 这是隐藏该计时器的一种更漂亮的方法)。

如果 splash vc 需要在应用程序准备好运行之前做一些工作(比如登录,或者其他需要足够长的时间才能异步执行的操作),我鼓励您查看我建议的这种方法)。

于 2012-12-12T01:04:52.510 回答