Почему верхняя панель навигации исчезает при выполнении каких-либо действий в представлении с помощью 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:"[email protected]")
    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 появляется над панелью навигации, но в моем приложении представление параметров находится за панелью навигации.

См. приложение «Контакты» слева и мое приложение справа:

Контакты здесьМое приложение

Файл моего проекта: здесь это небольшой проект


person Zizoo    schedule 07.09.2016    source источник
comment
вы скрыли панель навигации в любом месте вашего CNContactViewController   -  person Anbu.Karthik    schedule 07.09.2016
comment
@Anbu.Karthik Это единственный код, который у меня есть, я сделал новый проект с одним классом, у которого есть это действие, чтобы убедиться, что проблема не в моем старом коде.   -  person Zizoo    schedule 07.09.2016
comment
Вы видите какие-либо сообщения об ошибках в консоли? Ваш IBAction, у вас также есть переход к CNContactViewController в раскадровке?   -  person Fogmeister    schedule 07.09.2016
comment
@Fogmeister На консоли не отображаются ошибки + нет перехода в раскадровке   -  person Zizoo    schedule 07.09.2016
comment
@fogmeister вы можете увидеть проект в вопросе, только один венчурный капитал и один класс   -  person Zizoo    schedule 07.09.2016
comment
Нужна помощь пожалуйста   -  person Zizoo    schedule 07.09.2016
comment
Я загружаю вашу демонстрацию и тестирую ее с помощью Xcode 8, iOS 10. Панель навигации снова появится, когда вы нажмете кнопку отмены. Может, тебе стоит попробовать.   -  person wj2061    schedule 11.09.2016


Ответы (2)


Это ошибка согласно этому https://stackoverflow.com/a/33762209/3378099.

Вот не элегантное решение:

  1. Создайте новый класс, расширяющий UINavigationController.
  2. Назначьте его своему NavigationController в раскадровке
  3. Функция переопределения func setNavigationBarHidden(hidden: Bool, animated: Bool)

Ваш проект повторно загружен здесь

person korgx9    schedule 12.09.2016
comment
на самом деле у меня больше проблем, чем раньше - person Zizoo; 13.09.2016
comment
Какие проблемы у вас сейчас? - person korgx9; 13.09.2016
comment
Проблемы с пользовательским интерфейсом, например, когда я нажимаю «Создать новый контакт» и появляется всплывающее окно, кнопка «Отмена» не работает, также при попытке отправить электронное письмо на контактный адрес электронной почты открывается почтовое приложение, но за верхней панелью навигации и т. Д. - person Zizoo; 13.09.2016

Я обновил Xcode до версии 8.0 с помощью Swift 3, и проблема была решена без изменения кода.

person Zizoo    schedule 18.09.2016