2016-06-21 2 views
1

Примечание: Это не дубликат по любому вопросу. Я не мог найти никакого вопроса с помощью какого-либо метода действий и создания экземпляра для быстрого диспетчера представлений.Загрузите ViewController на основе Swift из действия кнопки класса Objective C

Я вызываю быстрый контроллер представления в объектном файле c класса .m.

В моем ViewController.m я импортируемый заголовке моста

#import "ViewController.h" 
#import "Project-Bridging-Header.h" 

Я хочу назвать Swift контроллера представления на основе из приведенного ниже действия

- (IBAction)tappedButnGo:(UIButton *)sender { 

    SwiftViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"SwiftViewController"]; 
} 

Здесь я получаю сообщение об ошибке

использование незаявленного идентификатора SwiftViewController

и ниже скор класс

import UIKit 

@objc class SwiftViewController: UIViewController { 
//so on 

и мой BridgingHeader пуст.

Может ли кто-нибудь помочь мне при загрузке SwiftViewController, когда я нажимаю на кнопку Objective C' s button?

ответ

5

Вам необходимо import следующего заявления в файле Controller.h

#import "ProductModuleName-swift.h" 

Здесь PrductModuleName ваше имя проекта

Надеется, что это поможет вам

+0

показывает, что файл не найден. – Santo

+0

Можете ли вы показать мне свой оператор импорта. –

+0

'#import" AutoLayout-Swift.h ", AutoLayout - мое имя проекта. – Santo

4

Проверьте раскадровку SwiftViewController идентификатора типа следующего изображения вам нужно установить StoryBoard ID вашего SwiftViewController с идентификатором Инспектор:

Ниже приводятся шаги, чтобы использовать быстрый класс в Objective C проекте:

  • Создать новый проект и выберите Objective C язык.
  • После того, что при создании нового класса в то время вы получите всплывающее окно, как:

enter image description here

  • Создать заголовок мост, а затем перейдите к настройке сборки и поиска с Определяет модуль и сделать его значение YES

  • Теперь вам нужно создать свой идентификатор swiftVeiwControllers, например, следующий код и перейти к первому ViewController

    enter image description here

  • Теперь вам нужно импортировать #import "obj_swift-Swift.h". здесь obj_swift это имя вашего проекта поэтому его внешний вид, как #import "yourprojectname-Swift.h"


Вот и теперь вам просто нужно сделать код как следующее:

- (IBAction)PushSwift:(id)sender { 

    SwiftViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"SwiftViewController"]; 

    [self.navigationController pushViewController:vc animated:YES]; 
} 

Вот пример демо-код:

https://github.com/nitingohel/obj_swift

+0

не работает, все же он показывает ту же ошибку. Я не могу создать экземпляр для своего swiftclass, чтобы использовать его. – Santo

+0

Я просто обновляю свой ответ и прикладываю демо скоро –

+0

Спасибо, братец, я думаю, в '#import" yourprojectname-Swift.h "' здесь (быстрый) 'маленький. – Santo