添加了导航栏但没有返回按钮?

Posted

技术标签:

【中文标题】添加了导航栏但没有返回按钮?【英文标题】:Added navigation bar but there is no back button? 【发布时间】:2015-05-19 13:12:53 【问题描述】:

我创建了一个表格视图,然后假设用户按下了一个单元格,它将转到 detailItemView ,但现在唯一的问题是,每当用户在 detailItemView 中时,即使我已经嵌入了一个后退按钮,也没有返回按钮导航控制器

这是一旦用户按下单元格就会执行转场的代码:

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

    // Get the new view controller using [segue destinationViewController].
    var nav = segue.destinationViewController as! UINavigationController
    var detailScene = nav.topViewController as! DetailViewController


    // Pass the selected object to the destination view controller.
    if let indexPath = self.tableView.indexPathForSelectedRow() 
        let row = Int(indexPath.row)
        detailScene.currentObject = objects?[row] as? PFObject
    

故事板的截图:

编辑截图

我尝试在下面做答案,但仍然没有返回按钮

另一个截图,detailView 控制器没有返回按钮

【问题讨论】:

BackButton 仅用于转到位于同一 NavigationController(堆栈)上的上一个 ViewController。因此,根据您的图像,由于您的新 ViewController 是唯一一个具有 NavigationController 的... 我可以用它返回 UITableView 吗?你能给出一些答案让我接受吗 NavigationController 需要像 Gutenmorgenuhu 的回答一样位于 TableViewController 之前。 【参考方案1】:

在 NavigationController 中嵌入 TableViewController。不是 DetailViewController 直接。查看屏幕截图。

确保连接 TableViewController 和 DetailViewController 的 segue 类型为 Show(例如 Push)。您必须在 Navigationstack 顶部 push 一个新视图。

【讨论】:

检查编辑的答案,我尝试在表格视图之前进行导航但仍然没有返回按钮 您是否在 Storyboard 中标记了 TableViewController,然后选择了“Editor-> Embed In -> Navigationcontroller”? 是的,我就是这么做的。你知道这是什么问题吗?我现在真的很困惑 ViewController 和 DetailView 的连接方式是什么? segue是从table view cell -->直接到detailView Controller,我用的是prepareForsegue方法【参考方案2】:

我刚才遇到了同样的问题,通过删除 segue,再次添加并立即给它一个标识符来解决。

【讨论】:

谢谢。你让我重新做,然后它起作用了【参考方案3】:

点击 StoryBoardSegue,tableviewcontroller 和 detailviewcontroller 之间的链接。在属性检查器中,即使已选中,您也可能需要单击“动画”检查。在选择“种类”下拉菜单中的“显示(例如推送)”后执行此操作。然后运行您的应用程序,然后在停止您的应用程序后重新选择相同的“动画”选项。我认为这是一个错误,我花了一个小时才弄清楚如何解决这个问题。此外,您可以使用已弃用的“推送”,但这会引发警告。已弃用的“Push”位于 StoryBoardSegue 属性检查器中的“Kind”下。

【讨论】:

【参考方案4】:

我也在为此苦苦挣扎,我命名了 segue 的标识符,现在它可以工作了。只需选择从 Table View 到 View 的 segue(箭头),然后转到选项所在的右上角,然后选择 Show the attributes inspector。标识符有一个字段。

【讨论】:

【参考方案5】:

只需将uinavigationUItableview 连接起来即可(显示)

【讨论】:

【参考方案6】:

如果您当前的视图控制器嵌入在导航控制器中,则无需将详细视图控制器嵌入导航控制器中。只需将一个按钮连接到详细视图控制器,后退导航就会自动出现。

【讨论】:

【参考方案7】:

在属性检查器中将detailView的“界面样式”更改为“推断”

【讨论】:

以上是关于添加了导航栏但没有返回按钮?的主要内容,如果未能解决你的问题,请参考以下文章

iOS 导航栏带推无控制器

ios怎么改变全局的导航条返回按钮

没有“返回”按钮的导航控制器

iOS 导航栏-返回按钮-自定义

JSQ 消息视图控制器:在导航栏上添加“返回”按钮和图像,Swift

如何在导航栏中添加返回按钮箭头功能