2014-10-13 4 views
1

Можно ли вызвать метод (написанный в Gamescene) из ViewController в Swift? Я читал о протоколе, делегировании или наследовании, но все обучающие материалы, которые я видел, не показывают этот случай.Как я могу вызвать метод из ViewController?

Благодарим за помощь.

+0

где вы пытаетесь назвать этот метод? – hmdeep

+0

Я пытаюсь вызвать метод таймера из моего ViewController. Метод таймера записывается в GameScene. – Haox

ответ

1

попробовать это.

в ViewController классе

#import "Gamescene.h" 

Gamescene *obj = [[Gamescene alloc] init]; 

[Gamescene methodName]; 

и не забыл добавить имя метода в Gamescene.h файле ..

в Swift

class SomeClass { 
    class func someTypeMethod() { 
    // type method implementation goes here 
} 

}

SomeClass.someTypeMethod() 

вы можете узнать here яблоко документации.

+0

Я код в быстром. Я видел, что нет инструкции импорта. Есть ли разница в коде? – Haox

+0

Я пробовал это: 'GameScene.startTimer()', но у меня есть ошибка сообщения: «Отсутствующий аргумент для параметров № 1 в вызове» – Haox

+0

- метод startTimer() имеет любой параметр для передачи? I означает любой ввод, который необходимо передать в этом метод? – hmdeep

0

Там в следующий способ можно назвать метод,

  • Если метод в ваш взгляд контроллер это сам, то вы можете вызвать его с self, проверьте вопрос о помощи, How can I call a method in Objective-C?

    [self yourMethodName];

    Если его метод класса, то, [ClassName yourMethodName];

  • Если ваш метод из другого класса, просто #import этот класс как #import "someclass.h" то же самое, создать объект этого класса и вызвать, проверить это для получения дополнительной помощи, Objective C - Call method from another class

    someclass *obj = [[someclass alloc] init];

    [obj methodName];

    Если сво метод класса, то [someclass methodName]; проверка вопрос о помощи, calling class methods objective c

  • с делегатом, если у вас есть чувство собственного делегата someclass затем в someclass вы можете назвать это так, проверьте вопрос, How do I create delegates in Objective-C?

    if(self.delegate && [self.delegate respondsToSelector(methodName)]) { [self.delegate methodName]; }

    и в контроллере зрения вы, чтобы написать, как это,

    someclass *obj = [[someclass alloc] init]; obj.delegate = я;

    - (void)methodName { //call when delegate calls it. }

  • соседний путь с NSNotificationCenter см этот вопрос для более детальной помощи, Send and receive messages through NSNotificationCenter in Objective-C?

Смежные вопросы