0

詳細ビューが表示され、文字列が空のときに、UIViewAnimationFlip. アニメーションは機能していますが、私が開始したビュー コントローラーではなく、それ自体に反転し続けます。どんな助けでも素晴らしいでしょう!

- (void)viewDidAppear:(BOOL)animated {

    if (masterView.parserURL == nil) {

        LoginViewController *login = [[LoginViewController alloc] init];

        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDuration:0.8];
        [UIView setAnimationTransition:UIModalTransitionStyleFlipHorizontal
                               forView:self.view
                                 cache:YES];

        [self.navigationController presentViewController:login 
                                                animated:YES 
                                              completion:nil];

        [UIView commitAnimations];
    }
}
4

2 に答える 2

1

サブビューを追加するだけでなく、モーダルでこれを行う必要があることに同意します。サンプル コードでは、presentviewcontroller メソッド自体が既にアニメーション化されているため、2 回アニメーション化しています。次のように、他のアニメーション コードを削除してみてください。

LoginViewController *login = [[LoginViewController alloc] init];
login.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;

[self presentViewController:login 
                   animated:YES 
                 completion:nil];
于 2012-12-13T21:02:56.750 に答える
0

私は簡単に提案しています:

- (void)viewDidAppear:(BOOL)animated {

    if (masterView.parserURL == nil) {

        LoginViewController *login = [[LoginViewController alloc] init];

        login.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;

        [self presentViewController:login
                           animated:YES
                         completion:nil];
    }
}

parserURLログイン画面でそのフィールドを更新する方法について興味深い質問があることに注意してくださいmasterView。へのポインタであるプロパティをログイン コントローラに追加してmasterViewparserURL. したがって、次のようになります。

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    if (masterView.parserURL == nil)
    {
        LoginViewController *login = [[LoginViewController alloc] init];

        login.masterView = masterView;

        login.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;

        [self presentViewController:login
                           animated:YES
                         completion:nil];
    }
}

次に、ログイン コントローラーは次の方法で parserURL を更新できます。

self.masterView.parserURL = ... // set it as appropriate
于 2012-12-13T21:21:13.897 に答える