我有 ViewController
,它有一个按钮可以导航到 CNContactViewController
一切正常,我可以返回并再次按下按钮等等。但是当我在 CNContactViewController
上执行一个操作,即 Share Contact
顶部导航栏将会消失,并且我肯定会卡在这个 View 中..这是代码:
@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:"<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="b4d1ccf4c3dcd5c0d1c2d1c69ad7dbd9" rel="noreferrer noopener nofollow">[email protected]</a>")
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- 联系人卡片上的所有操作都可以正常工作,例如调用
或发送消息
,但导致问题的共享联系人
除外。
2-当我将 VC 上的操作与联系人应用程序进行比较时,我注意到共享联系人
的弹出选项 View 位于导航栏上方,但在我的应用程序中,选项 View 位于导航栏。
查看左侧的“联系人”应用程序和右侧的“我的应用程序”:
我的项目文件:Here 这是一个小项目
最佳答案
这是一个错误,根据此 https://stackoverflow.com/a/33762209/3378099
这是一个不优雅的解决方案:
- 创建一个扩展 UINavigationController 的新类
- 将其分配给 Storyboard 中的 NavigationController
- 覆盖函数
func setNavigationBarHidden(hidden: Bool,animated: Bool)
重新上传您的项目 here
关于ios - 为什么使用 Swift 在 View 上执行某些操作时顶部导航栏会消失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39364785/