2011-07-13 7 views
1

私は自分のビューの変更をアニメーション化したいと思いますが、アニメーションを配置する場所がわからないのは、UITabBarControllerがどのビューを制御しているのか、また切り替えることができるからです。私のappdelegate.mファイルには、xcodeテンプレートに従ってください。uitabbarcontrollerでビューの変更をアニメーション化する

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    // Override point for customization after application launch. 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    UIViewController *viewController1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil]; 
    UIViewController *viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil]; 
    self.tabBarController = [[UITabBarController alloc] init]; 
    self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, nil]; 
    self.window.rootViewController = self.tabBarController; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

これは、すべてがロードされる各viewcontroller内の領域です。ここでアニメーションを初期化する方が良いかもしれないと考えています。私は景色を眺めながら、アニメーションの多くを行っていないとして

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     self.title = NSLocalizedString(@"Super", @"Super"); 
     self.tabBarItem.image = [UIImage imageNamed:@"SuperIcon"]; 
    } 
    return self; 
} 

私はUITabBarButtonをタッチすると、うまくいけば私の見解の変更をアニメーション化するコードのこのpeiceを宣言する可能性がどこでwounderingています前に....

[UIView transitionWithView:containerView 
      duration:0.2 
      options:UIViewAnimationOptionTransitionFlipFromLeft 
      animations:^{ [fromView removeFromSuperview]; [containerView addSubview:toView]; 
      completion:NULL]; 

私はボートを完全に逃してしまったのですか?

答えて

1

これは、タブバーコントローラベースのアプリケーションのために私のために働いたviewWillAppearメソッド

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:0.4]; 
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft 
         forView:self.view cache:YES]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut]; 
[UIView commitAnimations]; 

に次のコードを試してみてくださいviewWillAppearメソッドのコードで

+0

viewcontroller(それぞれtabbarcontrollerで起動します)のviewWillAppearメソッドに上記のコードを追加すると、containerViewがself.viewに置き換えられます。[super viewWillAppear:animated]は必要ありません。 – booleanBoy

+0

私はこれを試して、私はエラーを私に与えていた.. containnerViewについて..これについてさらに調査する必要があります。 –

+0

ビューが変更されたときにアニメーションを発生させたいので、viewWillDisappearメソッドで試してください。 – booleanBoy

2

をそのアニメーションを試してみてください。

関連する問題