首页 > 解决方案 > 使用 PushSegue iOS 编辑栏按钮

问题描述

我想在通过 pushSegue 到达的视图的导航栏中有 barButtonItems。

我试图通过向我的故事板添加一个导航栏项目来实现这一点,但是当我启动应用程序时,barButton 不会显示在构建中。请参阅此处的屏幕截图:

导航栏在构建时的外观

导航栏在构建时的外观

我是如何在 Storyboards 中构建它的

我是如何在 Storyboards 中构建它的

故事板的流程

故事板的流程

我通过使用以下代码单击一个单元格来转到我的 MainTextView:

 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        tableView.deselectRow(at: indexPath as IndexPath, animated: true)
        if let destination = storyboard?.instantiateViewController(withIdentifier:"MainTextView") as? MainTextView {
            destination.post = (posts[indexPath.row])
            destination.delegate = self
            navigationController?.pushViewController(destination, animated: true)
        }
    } 

}

后退按钮甚至不会出现在情节提要中。如何以编程方式更改默认后退按钮并向导航栏添加其他按钮?

标签: iosswiftuinavigationcontrollerpushviewcontroller

解决方案


我认为这可能是与 Xcode 11/ios 13 相关的问题。单击 segue 并将其从推送更改为模态呈现。从那里将演示上下文更改为全屏。您可能可以将其保留为推送,但是当您单击视图控制器/导航控制器时,转到属性检查器并查找一个名为演示的选项,并将其设置为全屏。

另一个尝试的选项是单击视图控制器,转到属性检查器并在导航控制器下 - 栏可见性点击(显示导航栏)

我能想到的最后一件事是,当您的往返连接应该连接到导航控制器时。

实际上还有更多可能性...... 1)在启动应用程序时检查您的调试视图层次结构。我的意思是

https://developer.apple.com/library/archive/documentation/ToolsLanguages/Conceptual/Xcode_Overview/ExamingtheViewHierarchy.html

基本上它是一个您单击的按钮,您将能够看到视图是如何相互堆叠的。我最好的猜测是,虽然你有一个栏项目按钮,但嵌套按钮实际上并不存在/显示。

2)将您的 tableviewcontroller 嵌套在另一个导航控制器中。


推荐阅读