后退按钮未显示在导航栏

时间:2015-06-03 12:53:10

标签: ios swift segue back-button

我无法理解视图控制器的呈现方式以及如何在swift中导航它们。我有一个联系人列表,当您点击一个联系人时,它会打开相关的会话,但它不会显示任何会话列表的后退按钮。我的故事板是: 联系清单 - >导航控制器 - >消息控制器

联系人列表之前没有导航控制器,因为它与滑动菜单混淆。

这是我的代码:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

    if segue.identifier == "ShowConversationFromSelectedContact" {

        let nav = segue.destinationViewController as! UINavigationController
        let cdtvc = nav.topViewController as! MessageViewController
        cdtvc.currentConversation = openConversation

    }

}

更一般地说,如果你可以解释或有任何关于控制器堆栈工作方式以及如何在它们之间导航的良好资源,这将是很好的,我读了很多文章,但它仍然不清楚。

1 个答案:

答案 0 :(得分:2)

重新排列它是Nav Controller -> Contact list -> Message controller,并使用push segues(如果你使用swift 1.2+,它们被称为Show segues。)

prepareForSegue:内,除了将联系人ID(或您需要传递的任何数据)设置到消息控制器之外,您不需要做任何其他事情。

修改

对于滑动菜单,我建议使用以下导航模型:

  1. 故事板ViewController的层次结构

    Nav Controller --root segue--> Contact List VC --show segue--> Message VC

  2. 滑动菜单通常会显示顶级视图。您的Contact List VC是顶级视图。由于它也是根VC,您可以使用self.navigationItem.leftBarButtonItem指定一个按钮来显示您的滑动菜单。