我无法从另一个类Menu.swift调用我的GameViewController.swift中的函数。 我把这个函数称为:
class Menu: SKnode {
func scoreAction(sender:UIButton!) {
self.buttonPlay.removeFromSuperview()
self.buttonScore.removeFromSuperview()
// CALLING FUNCTION
GameViewController.showLeaderboard()
}
}
以下是我试图打电话的功能:
class GameViewController: UIViewController,
UITextFieldDelegate, GKGameCenterControllerDelegate {
func showLeaderboard()
{
var gcViewController: GKGameCenterViewController = GKGameCenterViewController()
gcViewController.gameCenterDelegate = self
gcViewController.viewState = GKGameCenterViewControllerState.Leaderboards
gcViewController.leaderboardIdentifier = "yourleaderboardid"
self.presentViewController(gcViewController, animated: true, completion: nil)
}
}
我在GameViewController.showLeaderboard()行的Menu类中有一个Compiler Error "在呼叫"中缺少参数#1的参数但我不明白编译器期望什么类型的参数,因为我声明了函数而不需要任何参数。
谢谢
答案 0 :(得分:58)
在GameViewController
中,您已将scoreAction
定义为instance
方法而不是class
函数。您应该通过制作scoreAction
的实例来调用GameViewController
class Menu: SKnode {
func scoreAction(sender:UIButton!) {
self.buttonPlay.removeFromSuperview()
self.buttonScore.removeFromSuperview()
// CALLING FUNCTION
//see () on GameViewController
GameViewController().showLeaderboard()
}
}
如果你在storyBoard中有GameViewController
,我认为你应该从storyBoard加载GameViewController