0

我有一个标签栏控制器,在导航控制器中有一个视图。其中一个按钮会弹出一个模态视图。我将我的起始视图设置为模态的代表,并调用以下命令:

- (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];
}

根据一个答案找到了解决方案,因为我在标签栏控制器中,所以我必须从第一个视图调用 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 个动画彼此跟随,这是不允许的,因为您这样做了。您要么必须取消其中一个动画,要么将 popViewController 放在第一个动画的完成块内。

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

你可以尝试延迟执行第二个动作

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

希望它有效..快乐编码:)

于 2012-05-15T07:18:55.603 回答