ios - 栏按钮项目无法执行操作 Swift

标签 ios swift user-interface button uibarbuttonitem

我有一个导航栏(不是导航 Controller 导航栏)。在左侧,我拖动了一个 Bar Button Item,并使用 IBActon 将其连接到我的 View Controller 。该操作执行:

navigationController?.popViewController(animated: true).

同样,我在层次结构中嵌入了一个导航 Controller ,但我隐藏了导航 Controller 导航栏并使用我自己的导航栏。我不确定这是否与此有关。但“栏按钮项目”操作并未一致执行。有时,当我点击它时, View 会弹出(删除),而其他时候则什么也不会发生。如果有人经历过这一点并有任何见解,我将非常感激!

相关代码:

 @IBAction func backTapped(_ sender: Any) {
    navigationController?.popViewController(animated: true)
}

最佳答案

所以我发现了问题。这就是我在 View Controller 之间进行转换的方式。导航到我正在使用的应用程序

let storyboard = UIStoryboard(name: "Settings", bundle: nil)
    let viewControllerSettings = storyboard.instantiateViewController(withIdentifier: "SettingsID") as! SettingsViewController
    self.show(viewControllerSettings, sender: self)

但这就是问题所在。要正确导航到新的 Storyboard,同时保持与该 Storyboard中导航 Controller 的连接,您必须连接到导航 Controller 本身。所以它应该像这样执行:

let storyboard = UIStoryboard(name: "Settings", bundle: nil)
    let viewControllerSettings = storyboard.instantiateViewController(withIdentifier: "SettingsNavControllerID") as! UINavigationController
    self.show(viewControllerSettings, sender: self)

这样,我们就在 Storyboard中的导航 Controller 中添加了一个 StoryboardID,您可以继续并浏览它。如果不通过导航 Controller 进行排序,您将无法执行

navigationController?.popViewController(animated: true).

因为导航 Controller 未正确加载。

关于ios - 栏按钮项目无法执行操作 Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45235095/

相关文章:

ios - 如何使用 swift 在动态 TableView 中获取 UISwitch 的索引路径?

c++ - 是否可以枚举 wxWidgets 中的 wxFrame 子级?

c++ - Win32 C++ 重绘窗口

ios - 以编程方式压缩录制的音频

javascript - iOS HTML 相机预览输入文档

android - 项目不兼容 monoandroid81(MonoAndroid,Version=v8.1)

ios - 打开 xib 文件时显示错误

ios - 尝试将图像 URL 作为字符串获取时应用程序崩溃

ios - 动态添加各种​​控件到scrollview(iOS/Swift)

java - 更改 jScrollPane 的一侧并更改大小