【问题标题】:Pushing a navigation controller on tapping a button在点击按钮时按下导航控制器
【发布时间】:2014-12-22 20:43:32
【问题描述】:

在我的 Swift 应用程序中,我有一个导航控制器,其中有一个表格视图控制器,其中包含一个“组”列表。我在顶部导航栏上有一个按钮,应该添加一个新的“组”。在点击按钮时,我需要设置一个视图控制器来添加一个新的“组”,以便在这个新视图的导航栏中使用标题为“组”的后退按钮从右侧滑入。

我尝试将导航视图控制器嵌入到我的“新组”视图控制器中,然后使用推送转场在“组”视图控制器的导航栏中的栏按钮项内进行触摸转换。 “不支持推送导航控制器”会导致此错误

我怎样才能最好地实现这种行为?

【问题讨论】:

    标签: ios swift uinavigationcontroller ios8 segue


    【解决方案1】:

    一旦您的第一个视图控制器嵌入到导航控制器中,您就不必将后续视图控制器嵌入到它们自己的导航控制器中 - 您只需将它们推送到现有导航层次结构的上下文中。

    因此,您可以从“新组”场景中移除导航控制器,然后通过按钮直接向新场景建立“推送”转场(尽管这已被弃用且 iOS8 中首选“显示”转场)。

    【讨论】:

    • 我也预料到了,但是当我右键单击并从按钮拖动到我的新组控制器时,它是一个表格视图控制器,虽然它表明已经建立了一个 push segue,点击按钮什么都不做。这是它的样子:copy.com/rEXe0NxbphrMGREi
    • 为什么你的groups表链接到另一个table view controller?不会直接进入新群场景吗?还是我可以看到的其他新组场景没有使用。我无法从您的屏幕截图中看到,- 如果您选择 + 按钮,检查器中显示的“触发的转场”是什么?
    • 是的,那是一个未使用的控制器。我不知道之前发生了什么,但我删除了按钮并再次尝试,并且成功了。谢谢!
    【解决方案2】:

    如果您已经有一个导航控制器,您可能不想创建一个新的。

    相反,从当前视图控制器调用[self.navigation controller pushViewController:animated:] 传递新的“创建组”视图控制器的实例。如果您设置了该视图控制器的title 属性,它将显示在导航栏中。

    【讨论】:

      猜你喜欢
      • 2012-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-01
      • 1970-01-01
      相关资源
      最近更新 更多