导航完成的项目不起作用

Posted

技术标签:

【中文标题】导航完成的项目不起作用【英文标题】:navigation Done item not working 【发布时间】:2013-03-04 17:01:12 【问题描述】:

在我的视图控制器(最后一个表视图控制器)的顶部视图中有一个添加导航项。我从对象库中添加了一个视图控制器对象,然后我 ctrl + 从加号按钮拖动到视图控制器。我尝试了该应用程序,它运行良好,但是当我到达最后一个控制器时,我无法返回到前一个控制器。由于最后一个控制器(通过 segue)连接到加号按钮,我不能在顶部有导航栏。所以我添加了一个并添加了一个导航项,称为完成。我在具有以下代码的最后一个控制器子类的类中创建了一个 IBAction 方法:

[self.navigationController popNavigationControllerAnimated:YES];

但是,当我运行应用程序并按下完成按钮返回时,它不起作用,尽管我觉得我所做的完全合法。

【问题讨论】:

“我的顶部不能有导航栏”是什么意思? 当我选择 segue 的样式为模型时,导航栏消失。我试图在 viewWillAppear 中添加 [self.navigationController setNaigdationBarHidden:NO] 但它没有出现。 【参考方案1】:

如果您将最终的视图控制器 segue 设置为 Push segue,您仍然会拥有带有后退按钮的导航栏。这是有道理的,因为您要添加一条需要模式视图的记录。

您可以使用以下代码关闭当前模式视图:

[self dismissViewControllerAnimated:YES completion:nil];

通常,您应该使用委托并将其从呈现的视图控制器中解除。不过,我认为如果您使用情节提要、segue 和 ARC,请不要理会自己。

【讨论】:

非常感谢!像魅力一样工作:P 但请你告诉我你是什么意思使用委托并从呈现视图控制器中解散它?再次感谢。 Using Delegation to Communicate with other Controllers【参考方案2】:

您是否创建了条形按钮项并为其分配了“选择器”回调?

【讨论】:

不。我确实知道该怎么做,但我想尝试另一种方法。我不能添加导航项并将其连接到我创建的方法吗? [注意:我使用的是模型样式 segue,我添加了自己的导航栏] 首先 - 您需要创建一个显示“完成”的条形按钮项。第二 - 您必须分配给它的“选择器”回调,您也可以将它分配给您已经创建的方法

以上是关于导航完成的项目不起作用的主要内容,如果未能解决你的问题,请参考以下文章

从另一个网站导航时 RedirectToAction 不起作用

侧面导航抽屉项目单击不起作用

在情节提要中设置导航栏项目图像不起作用

透明导航栏不起作用(呈半透明蓝色)

插值不起作用 - 抽屉导航

导航抽屉操作栏按钮不起作用