-1

我有一个导航控制器。我先推了一个VC,然后介绍了12个模态VC。现在我想弹出到根视图控制器。我怎样才能做到这一点?请帮帮我。

4

6 回答 6

3

您将需要关闭您呈现的 12 个模态视图。popViewController 或 popToRootViewController 将不起作用。

于 2012-12-01T16:58:40.583 回答
2

关闭您的模态视图以进入根视图。

于 2012-12-01T17:20:52.507 回答
1

抱歉,我不确定我是否正确理解了您的问题。但是 UINavigationController 的
- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated
你在搜索什么?

于 2012-12-01T16:49:44.267 回答
0

如果您有导航控制器并希望享受在单个命令中弹出多个级别的好处,那么您应该使用pushViewController(或推送转场)而不是presentViewController(或模态转场)。

正如其他人指出的那样,如果您正在纠正对后续控制器的推送,那么您可以通过以下方式弹出:

[self.navigationController popToRootViewControllerAnimated:YES];
于 2012-12-01T16:59:37.637 回答
0

告诉推送的 VC 到dismissViewControllerAnimated:completion:. 这将解雇所有提交的 VC。现在您可以弹出推送的 VC。

于 2012-12-01T17:59:11.617 回答
0

在 AppDelegate 的实例变量中保留第一个 NavigationController。在 AppDelegate.h

@property (nonatomic, retain) UINavigationController *navigationControllerFirst;

在 RootViewController viewDidLoad 中添加以下内容。

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    AppDelegate *app = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    app.navigationControllerFirst = self.navigationController;
}

然后,为了实现你想要的,在第 12 个呈现的模式中添加以下函数以返回到 RootViewController。

- (IBAction)GoToHome:(id)sender {
    AppDelegate *app = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    [app.navigationControllerFirst dismissViewControllerAnimated:YES completion:^{
        [app.navigationControllerFirst popToRootViewControllerAnimated:YES];
    }];
}
于 2012-12-01T18:07:56.563 回答