为什么使用 Swift 在视图上执行某些操作时顶部导航栏会消失?
Why top Navigation Bar disappear when do some action on the view using Swift?
我有 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- 联系人卡片上的所有操作都像 Call
或 Send Message
一样工作正常,除了 Share Contact
导致问题。
2- 当我将 VC 上的操作与联系人应用程序进行比较时,我注意到 Share Contact
的弹出选项视图出现在导航栏上,但在我的应用程序中选项视图出现在导航栏后面 .
请参阅左侧的“通讯录”应用和右侧的“我的应用”:
我的项目文件:Here这是一个小项目
根据此
,这是一个错误
这是一个不优雅的解决方案:
- 创建一个新的 class 扩展 UINavigationController
- 将其分配给故事板中的 NavigationController
- 覆盖函数
func setNavigationBarHidden(hidden: Bool, animated: Bool)
重新上传了您的项目here
我确实使用 Swift 3 将 Xcode 更新到 8.0 版,并且在不更改代码的情况下解决了问题。
我有 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- 联系人卡片上的所有操作都像 Call
或 Send Message
一样工作正常,除了 Share Contact
导致问题。
2- 当我将 VC 上的操作与联系人应用程序进行比较时,我注意到 Share Contact
的弹出选项视图出现在导航栏上,但在我的应用程序中选项视图出现在导航栏后面 .
请参阅左侧的“通讯录”应用和右侧的“我的应用”:
我的项目文件:Here这是一个小项目
根据此
这是一个不优雅的解决方案:
- 创建一个新的 class 扩展 UINavigationController
- 将其分配给故事板中的 NavigationController
- 覆盖函数
func setNavigationBarHidden(hidden: Bool, animated: Bool)
重新上传了您的项目here
我确实使用 Swift 3 将 Xcode 更新到 8.0 版,并且在不更改代码的情况下解决了问题。