Как вызвать Objective C viewcontroller в Swift - PullRequest
0 голосов
/ 28 марта 2019

Я нашел ViewController SDK, используя цель C. Я хочу использовать его быстро, но не могу позвонить.

Можете ли вы предложить мне какую-нибудь идею для его использования?

Я хочу создать раскадровку и установить пользовательский класс в ViewControllerObjectiveC, но все равно не могу открыть viewcontroller.

let vc = sb.instantiateViewController(withIdentifier: "ViewControllerObjectiveC") as! ViewControllerObjectiveC
self.dismiss(animated: false, completion: nil)
self.presentingViewController?.present(vc, animated: false, completion: nil)

Ответы [ 2 ]

0 голосов
/ 08 апреля 2019

Заголовок моста - это способ решить вашу проблему.

См. Этот документ Apple:

https://developer.apple.com/documentation/swift/imported_c_and_objective-c_apis/importing_objective-c_into_swift

Шаг 1 Перетащите файлы Objective-C в проект, после чего вы увидите это сообщение в своем проекте Xcode.

Посмотреть это всплывающее окно

Затем нажмите на опцию Создать заголовок моста. Это создаст один заголовочный файл внутри вашего проекта.

Подтверждение файла заголовка

Теперь вам просто нужно импортировать файл Objective C в созданный заголовочный файл.

Вот и все.

0 голосов
/ 28 марта 2019

Для взаимодействия кода Obj-C со Swift вам потребуется файл заголовка моста. Имя соединительного заголовка ДОЛЖНО быть таким, как <YourProject>-Bridging-Header.h. Хотя вы можете создать его вручную, есть опция, которую Xcode создает самостоятельно. Для второго варианта создайте новый файл с расширением .m. Xcode попросит вас создать соединительный заголовок. Одобрить это.

Теперь импортируйте в этот файл все, что вам нужно, из Swift. В вашем случае вставьте следующее в заголовок моста:

#import "ViewControllerObjectiveC.h"

Предполагается, что ваш файл Obj-C имеет имя ViewControllerObjectiveC.h. Код, которым вы поделились, должен работать сейчас.

...