推送在导航控制器(故事板)中不起作用

Posted

技术标签:

【中文标题】推送在导航控制器(故事板)中不起作用【英文标题】:Push does not work in Navigation Controller (storyboard) 【发布时间】:2016-02-29 10:26:03 【问题描述】:

我将 ViewController(1) 嵌入到导航控制器中。在这个 ViewController 的导航栏中,我添加了一个按钮并对另一个 ViewController (2) 进行了控制拖动操作。启动应用程序并单击按钮时,不会执行任何推送操作(显示)。

我所做的是为 (2) 分配了一个新创建的类,以便我可以以编程方式对其进行自定义。分配后,我再次从故事板中的按钮设置 segue。它仍然不起作用。我没有将按钮分配给情节提要导航按钮,因为在另一个视图控制器(3)中,它没有那个就可以工作。

我是否必须分配一个带有 segue 的按钮方法?但是为什么它在(3)中起作用?我不知道我应该发布什么代码,因为这个问题看起来很琐碎。

编辑: 在图像中,您可以看到导航控制器、(1) 与地图视图和 (2)。我不能从选择按钮“推”到(2)。我必须实现导航控制器并将 (1) 和 (2) 添加为子视图控制器吗?

【问题讨论】:

通过截图显示你想做什么 我现在添加了一个屏幕截图,应该可以澄清我的问题。 有多种方法可以实现相同的目的。简单地说,为 Second(2) viewcontroller 放置一个“Storyboard ID”。接下来,通过该特定的故事板 ID 访问该 ViewController,并在“选择”按钮单击以推送该控制器时调用该方法。 感谢您的回答!我自己解决了。会在回复中写下来。检查是否有兴趣:) 【参考方案1】:

嘿@Vancore 只需按照以下步骤操作 1.获取两个视图控制器Fist和Second。 2. 选择 First View Controller 并嵌入到导航控制器中。 3. 右侧导航栏添加按钮。 4.选择刚刚添加的导航栏上的按钮,然后右键单击并按住将其拖动到第二个视图控制器并释放单击。 5. 选择显示。 6.运行项目,它工作正常,没有任何问题。

另一种方式 1. 在第一个视图控制器中为按钮创建 IBAction()。2.第一个视图控制器选择黄色圆形控制器按钮。然后右键单击按住将其拖动到第二个视图控制器并释放单击。选择显示3。在属性检查器中将标识符设置为 segue,例如“mySegue”。4。使用以下代码在 IBAction 方法中执行 segue

 [self performSegueWithIdentifier:@"mySegue" sender:self];

【讨论】:

【参考方案2】:

我自己解决了。

基本上我所做的是创建一个自定义导航控制器,并通过以下方式将 (1) 和 (2) 作为子视图控制器提供给他:

[self addChildViewController: [(1)];
[self addChildViewController: [(2)];

我不知道这是否是基于情节提要的应用程序的最佳方法,但它对我有用。

【讨论】:

以上是关于推送在导航控制器(故事板)中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

通过应用程序的故事板保持导航控制器

为啥使用故事板推送视图控制器显示黑屏

嵌入式 tableview 的故事板背景颜色属性不起作用?

导航推送视图控制器不起作用

在故事板之间保持导航控制器(swift)

无法在故事板iOS8的导航栏中添加右栏按钮