0

ナビゲーションコントローラー内のビューを備えたタブバーコントローラーがあります。このボタンの1つは、モーダルビューをポップアップします。開始ビューをモーダルのデリゲートとして設定し、次のように呼び出します。

- (void)dischargeSaveComplete:(dischargeView *)controller
{
    [self dismissViewControllerAnimated:YES completion:nil];

    [self.navigationController popViewControllerAnimated:YES];
}

モーダルビューは正しく閉じられますが、戻るボタンは呼び出されません。タブバーコントローラー内にあるので、何か他のことをする必要がありますか?

以下に示すように、両方をアニメーションnoに設定しようとしましたが、どちらも機能しません。

- (void)dischargeSaveComplete:(ehrxEncounterDischargeView *)controller
{
    [self dismissViewControllerAnimated:NO completion:nil];

    [self.navigationController popViewControllerAnimated:NO];
}

答えの1つに基づいて解決策を見つけました。私はタブバーコントローラーを使用していたため、以下に示すように、最初のビューからpopviewcontrollerを呼び出す必要がありました。

- (void)dischargeSaveComplete:(ehrxEncounterDischargeView *)controller
{
    [self dismissViewControllerAnimated:YES completion:^(void) 
    {
        demoView *e = [self.parentViewController.tabBarController.viewControllers objectAtIndex:0];
        [e.navigationController popViewControllerAnimated:YES];
    }];
}
4

2 に答える 2

0

2番目のアクションを実行する際に遅延を試すことができます

[self.navigationController performSelector:@selector(popViewControllerAnimated:) withObject:@"YES" afterDelay:1];

それがうまくいくことを願っています..幸せなコーディング:)

于 2012-05-15T07:18:55.603 に答える
0

2 つのアニメーションを連続させたいのですが、これは許可されていません。アニメーションの 1 つをキャンセルするか、最初のアニメーションの完了ブロック内に popViewController を配置する必要があります。

[self dismissViewControllerAnimated:YES completion:^(void) {
    [self.navigationController popViewControllerAnimated:YES];
}
];
于 2012-05-15T07:13:12.057 に答える