【问题标题】:Why top Navigation Bar disappear when do some action on the view using Swift?为什么在使用 Swift 对视图执行某些操作时顶部导航栏会消失?
【发布时间】:2016-09-07 08:24:18
【问题描述】:

我有ViewController,它有一个按钮可以导航到CNContactViewController,一切正常我可以返回并再次按下按钮等等。但是当我对CNContactViewController 执行一项操作时,我的问题是Share Contact 顶部导航栏将消失,我肯定会卡在这个视图中.. 这是代码:

    @IBAction func dothis(sender: AnyObject) {

    let contact = CNMutableContact()
    contact.givenName = "first Name"
    contact.familyName = "Last Name"
    contact.phoneNumbers = [CNLabeledValue(
        label:"Mobile",
        value:CNPhoneNumber(stringValue:"123456789")),
        CNLabeledValue(
            label:"Work Phone",
            value:CNPhoneNumber(stringValue:"1234"))]

    let workEmail = CNLabeledValue(label:"Work Email", value:"ex@whatever.com")
    contact.emailAddresses = [workEmail]

    let controller = CNContactViewController (forContact: contact)
    controller.contactStore = self.store
    controller.allowsEditing = false

    controller.displayedPropertyKeys =
        [CNContactPhoneNumbersKey,CNContactEmailAddressesKey, CNContactPostalAddressesKey]

    self.navigationController?
        .pushViewController(controller, animated: true)

}

我是否需要在CNContactViewController 上实现更多的共享联系人和其他操作?

注意事项:

1- 联系人卡片上的所有操作都可以正常工作,例如 CallSend Message,除了导致问题的 Share Contact

2- 当我将 VC 上的操作与联系人应用程序进行比较时,我注意到Share Contact 的弹出选项视图出现在导航栏上,但在我的应用程序中,选项视图出现在导航栏后面。

查看左侧的联系人应用和右侧的我的应用:

我的项目文件:Here这是一个小项目

【问题讨论】:

  • 你把导航栏隐藏在你的 CNContactViewController 的任何地方了吗
  • @Anbu.Karthik 这是我唯一的代码,我创建的新项目有一个类具有此操作以确保问题不在我的旧代码中
  • 您是否在控制台中看到任何错误消息?您的 IBAction,您是否也对故事板中的 CNContactViewController 进行了转义?
  • @Fogmeister 控制台上没有显示错误 + 故事板中没有 segue
  • @fogmeister你可以看到问题里的项目,只有一个VC和一个类

标签: ios swift uinavigationcontroller cncontact


【解决方案1】:

根据https://stackoverflow.com/a/33762209/3378099这是一个错误

这是一个不优雅的解决方案:

  1. 创建一个扩展 UINavigationController 的新类
  2. 将其分配给 Storyboard 中的 NavigationController
  3. 覆盖函数func setNavigationBarHidden(hidden: Bool, animated: Bool)

重新上传你的项目here

【讨论】:

  • 其实我遇到的问题比以前多了
  • 你现在有什么问题?
  • UI 问题,比如当我按下创建新联系人并弹出视图时,取消按钮也不起作用,当尝试向联系人电子邮件发送电子邮件时,它会打开邮件应用程序但在顶部后面栏导航等等..
【解决方案2】:

我确实使用 Swift 3 将 Xcode 更新到 8.0 版,并且在不更改代码的情况下解决了问题。

【讨论】:

    猜你喜欢
    • 2019-06-05
    • 2020-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多