1

私の iOS アプリでは、 、 、および の 3 つがあるとしましょViewControllersう。ABC

からA私は代理人として出席Bし、割り当てAます。でアクションが実行された後、から閉じて表示Bしたいと思います。ただし、画面にまったく表示されずにこれを行いたいです。これは今、クラス内の私のコードです:BCAAA

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

    B *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"B-identifier"];
    vc.delegate = self;
    [self presentViewController:vc animated:NO completion:^{}];

}

A次に、アクションが実行されたときにB呼び出される内部のデリゲート関数を次に示します。

- (void) actionPerformed
{
    [self dismissViewControllerAnimated:YES completion:^{
    C *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"C"];
    [self presentViewController:vc animated:NO completion:nil];
}];

ただし、これにより、提示コードを却下の完了ハンドラーに入れても、(却下を呼び出した後) C が少し表示されます。それを避けるにはどうすればよいですか?

4

2 に答える 2

1

ログイン アプローチに使用している場合は、別のアプローチを試す必要があります。A が rootViewController (ログイン ビュー コントローラーとして作成) であるかどうかを意味し、ユーザーがセッションを持っているかどうかを確認します。ユーザーがセッションを持っていると仮定して、C viewController を rootViewController として使用し[[[[UIApplication sharedApplication] delegate] window]setRootViewController:]、セッションを持っていない場合は同じページ (A viewController) を表示し、B は必要ありません。試してみると、アプリのパフォーマンスが向上する可能性があります。

于 2014-10-15T11:48:58.170 に答える