导航完成的项目不起作用
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,我添加了自己的导航栏] 首先 - 您需要创建一个显示“完成”的条形按钮项。第二 - 您必须分配给它的“选择器”回调,您也可以将它分配给您已经创建的方法以上是关于导航完成的项目不起作用的主要内容,如果未能解决你的问题,请参考以下文章