【问题标题】:going back to a previous instance of a view controller回到视图控制器的前一个实例
【发布时间】:2015-04-29 17:38:02
【问题描述】:

我想回到视图控制器的前一个实例。我试过了

[self dismissViewControllerAnimated:YES completion:nil];

但卡在加载屏幕上。我想回到前面的例子。 现在它正在模态地呈现。我试过了:

    CameraOverlayVC *vc = [[UIStoryboard storyboardNewSendCase]instantiateViewControllerWithIdentifier:@"CameraOverlayVC"];
    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];
    NSArray *viewControllers = nav.viewControllers;
    NewCaseSummaryVC *rootVC = [viewControllers objectAtIndex:viewControllers[3]];
   [self.presentingViewController presentViewController:rootVC animated:YES completion:nil];

然后它崩溃了。我也试过了:

    CameraOverlayVC *vc = [[UIStoryboard storyboardNewSendCase]instantiateViewControllerWithIdentifier:@"CameraOverlayVC"];
    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];
   [self presentViewController:nav animated:YES completion:nil];

但它卡在加载屏幕上.. 有没有办法回到视图控制器的前一个实例?视图控制器没有连接[我也尝试过 unwind segue,我什至设置了断点,看看它是否命中了 unwind segue 的方法,但它没有]。我模态地展示了视图控制器,但是如果我再次关闭这个视图控制器,它就会卡在加载屏幕上。

任何建议都会很棒!再次感谢!

【问题讨论】:

  • “加载屏幕”是什么意思?
  • 如果您以模态方式呈现,那么您需要做的就是从控制器中关闭模态视图,它将返回到前一个视图。尝试:[self dismissViewControllerAnimated:YES 完成:nil];

标签: ios objective-c uinavigationcontroller objective-c-blocks


【解决方案1】:

你完全错了。您正在将 CameraOverlayVC *vc 作为 UINavigationController 的 rootViewController,这意味着这是根导航控制器,之前添加的所有视图控制器都将消失。所以当你关闭它时,你会看到一个空白或加载屏幕。

你需要做的是,说当前是在 x viewController 然后以模态方式呈现 vc 将是:

CameraOverlayVC *vc = [[UIStoryboard storyboardNewSendCase]instantiateViewControllerWithIdentifier:@"CameraOverlayVC"];

[self presentViewController:vc animated:YES completion:nil];

要关闭 vc,请使用取消/关闭按钮,并在其点击事件上写:

[self dismissViewControllerAnimated:YES completion:nil];

如果您还有其他期待,请告诉我。

【讨论】:

    猜你喜欢
    • 2018-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-07
    • 2013-10-21
    • 1970-01-01
    • 2015-08-27
    • 2019-07-03
    相关资源
    最近更新 更多