Как вызвать контроллер представления Objective C в Swift

Я нашел 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)

Возможный дубликат Как вызвать код Objective-C из Swift

El Tomato 28.03.2019 03:53

Попробуйте изменить последние две строки как => self.dismiss(animated: true) { self.presentingViewController?.present(vc, анимированный: true, завершение: nil)}

Pranay 28.03.2019 06:23
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
1 583
2

Ответы 2

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

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

#import "ViewControllerObjectiveC.h"

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

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

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

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

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

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

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

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

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

Это оно.

@ebank dsb Не могли бы вы изучить этот ответ и дайте мне знать, если вам нужна дополнительная информация. Спасибо

Darshan Kunjadiya 09.04.2019 08:00

Другие вопросы по теме