将Action Segue从按钮推送到UIViewController

问题描述 投票:1回答:3

我是iOS应用程序开发的新手,目前面临一些从UIButton到UIViewController的问题。我在Main.storyboard上面做过:

  • 选择UIButton
  • 持“控制”并拖动到UIViewController
  • 在Action Segue下选择“推送”

运行此后,我得到以下错误

*** Terminating app due to uncaught exception 'NSGenericException', reason: 'Push segues can only be used when the source controller is managed by an instance of UINavigationController.'

需要帮助解决上述错误。如果解决方案附带截图,我会很感激,因为我是新手。谢谢!

实施@technerd解决方案后,它仍然无法正常工作。下面是导航控制器菜单和动作搜索菜单的图像

enter image description here

enter image description here

ios swift segue
3个回答
2
投票

从错误日志中看起来您没有在故事板中嵌入UINavigationController作为初始控制器。

所以首先将UINavigationController设置为初始控制器。因为pushpop操作仅在有可用的导航堆栈时执行。

  1. 根据屏幕截图选择故事板中的第一个ViewController。
  2. 然后编辑 - >嵌入 - > NavigationController

要了解导航堆栈的工作原理,请浏览此link

enter image description here

将Navigation设置为InitialViewController后,将您想要首先显示的第一个viewcontroller设置为该导航控制器的rootViewController。

enter image description here

然后你可以将push从按钮拖到secondViewController,从firstViewController推送到secondViewController。

enter image description here

正如你可以在截图中看到Push(Deprecated),所以你必须使用Show关系。 Show也执行与Push相同的操作。

更新:

根据您的问题更新,您面临的是您无法显示其他行动瞄准。请按照以下步骤使其可用。

  1. 在故事板中选择导航控制器。
  2. 在右侧面板的Use Trait Variations下启用Interface Builder Document选项。

enter image description here

有关详细信息,请查看此thread


0
投票

将导航控制器添加到初始视图中

  1. 选择初始视图
  2. 转到编辑器 - >嵌入 - >导航控制器。

0
投票

Push segues仅在UINavigationController类型中可用。尝试添加UINavigationController。一个简单的方法是:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.