在 Modal 之后推送 UIView

Posted

技术标签:

【中文标题】在 Modal 之后推送 UIView【英文标题】:Push UIView after Modal 【发布时间】:2013-10-12 12:54:31 【问题描述】:

我正在使用模态过渡在 view1 到 view2 之间移动,并且我想使用从 view2 到 view3 的弹出过渡(以编程方式),但它不起作用(我使用导航控制器作为 root):

代码是(在view2中):

    view3 *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"view3"];
    [self.navigationController pushViewController:controller animated:YES];

代码应该是怎样的?

【问题讨论】:

您要弹出哪个视图?是指 view1、view2 还是 view3? 提供更多代码如何从 view1 过渡到 view2 将有助于我们更好地理解。 @Unheilig 故事板是这样的:navigation_controller 作为根,view1 通过模态转换连接到 view2(非编程方式,通过故事板。view2 通过推送转换连接到 view3(就像我写的代码) . 当我点击按钮没有任何反应时,我在按钮操作中写了 NSSlog 以验证它的正常(它是:))。我在某处读到问题可能是由于堆栈问题。对吗? 【参考方案1】:

就代码而言,我觉得一切都很好。

您应该提供有关为什么这不起作用的信息...您是否遇到错误?如果是在哪里?

如何启动对新控制器的推送?尝试使用 NSLog(@"Hello");以确保它被正确调用。

除此之外,问题可能是故事板没有与 self.storyboard 一起返回。您可以随时尝试

UIStoryboard *appStoryboard = [UIStoryboard storyboardWithName:@"YOUR_STORYBOARD_NAME_HERE" bundle:nil];

然后使用

view3 *controller = [appStoryboard instantiateViewControllerWithIdentifier:@"view3"];

【讨论】:

没有错误,什么也没发生,view3 没有加载。如果我不是以编程方式而是通过情节提要使用 Push,模拟器会崩溃。 这似乎是一个非常简单的设置,这里没有太多错误。您应该在问题中提供更多信息、代码、故事板图片

以上是关于在 Modal 之后推送 UIView的主要内容,如果未能解决你的问题,请参考以下文章

UIView 需要推送一个 UIViewController(委托)

如何从 UIView 推送 UIViewController

推送 UIView 时隐藏 UITabBar

拖拽uiview推送viewcontroller

以编程方式从 UiView 推送新视图控制器的问题

在持久化 UIView 的同时推送 navigationController