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

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

[self.navigationController popNavigationControllerAnimated:YES];

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

【问题讨论】:

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

标签: ios objective-c xcode


【解决方案1】:

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

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

[self dismissViewControllerAnimated:YES completion:nil];

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

【讨论】:

【解决方案2】:

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

【讨论】:

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