1

私のライブラリには、入力ビューにポップする読み込みビューがあります。ユーザーが入力ビューを終了すると、再び読み込みビューに戻って魔法をやり直す必要があり、完了したら3番目のビューが表示されます。popToRootViewController forward animation

使いやすさのビューでは、ローディングビューにスライドバックしたくないし、既にメモリにローディングビューを持っているときに新しいローディングビューを割り当てたくない。

ビューを前方にスライドさせているときにpopToRootViewControllerを使用できる方法はありますか?

答えて

2

行く - おそらく私はこの答えに同意し

// This goes in whatever view controller you want to pop with 
- (void)popToRootWithForwardAnimation 
{ 
    NSMutableArray * viewControllers = [[[self.navigationController viewControllers] mutableCopy] autorelease] 
    UIViewController * rootViewController = [viewControllers objectAtIndex:0] 
    [viewControllers removeObjectAtIndex:0]; // try using with and without this line? 
    [viewControllers addObject:rootViewController]; 

    [self.navigationController setViewControllers:viewControllers animated:YES]; 
} 

// This goes in the root view controller 
- (void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated] 
    NSMutableArray * viewControllers = [[[self.navigationController viewControllers] mutableCopy] autorelease] 
    if ([viewControllers count] > 1) 
    { 
     [viewControllers removeAllObjects]; 
     [viewControllers addObject:self]; 

     [self.navigationController setViewControllers:viewControllers animated:NO]; 
    } 

    … 
    … 
} 
2

ええと、ナビゲーションスタックでプッシュ/ポップするのではなく、モーダルな方法でビューを反転する方がよいでしょう。 、マジックビューコントローラは、そのマジックをやって行われているときに

MagicViewController *magicVC = [[MagicViewController alloc] init]; 
magicVC.setModalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
[self presentModalViewController:magicVC animated:true]; 

ちょうど(あなたがそうでないポップところ)その時点で実行します:だから、あなたは次のビューコントローラをプッシュしている入力ビューにしたいと思う

[self dismissModalViewControllerAnimated:true]; 

これは、簡単なナビゲーションを行うよりもはるかにクールです。さてさて、ここで

See modal view controllers guide.

+0

のようなものを使用してみてください。しかし、元の質問に答えると、UINavigationControllerのviewControllersとsetViewController:animatedプロパティで再生することで、フォワードアニメーションを「強制」することができます。 – mackross

+0

あなたが同意するならいつでも投票できるよ:) – zakishaheen

+0

笑。 – mackross