У меня есть objc uiviewcontroller, которые выполняют segue для быстрого uiviewcontroller в модальном режиме. Я создаю делегат в файле objc, но я не могу вызвать метод в objc из файла swift. Все файлы швов должны быть в порядке, но при вызове функции delegate.function вы получаете плохой exec в быстром файле.делегат от objc до быстрого отклонения модального вида
ObjC
#import "Cliente-Swift.h"
@interface ViewController() <gameDelegate>
@end
(...)
else if ([[segue identifier] isEqualToString:@"segueToGame"]) {
//jump to main vgame controller
GameViewController *gameVC = [segue destinationViewController];
gameVC.mydelegate = self;
}
быстры GameViewController
@objc protocol gameDelegate {
func dismissGame()
}
class GameViewController: UIViewController {
var mydelegate: gameDelegate! = nil
override func viewDidLoad() {
super.viewDidLoad()
let scene = MainMenuScene(size:CGSize(width: 1536, height: 2048))
//let scene = GameScene(size:CGSize(width: 1536, height: 2048))
let skView = self.view as! SKView
skView.showsFPS = true
skView.showsNodeCount = true
skView.showsPhysics = true;
skView.ignoresSiblingOrder = true
scene.scaleMode = .AspectFill
skView.presentScene(scene)
}
override func prefersStatusBarHidden() -> Bool {
return true
}
func sairDoJogo() {
print("mydelegate = \(mydelegate!)")
mydelegate!.dismissGame()
плохо Exec, где в вызове к ObjC функции dismissGame
Где вы назначаете себя своему делегату? self.mydelegate = self – Amit89
в игре prepareForSegueVC.mydelegate = self; – otitserip