我不知道是否可能,但我想在类对象中调用视图控制器的方法。我在视图控制器的.m
文件中有这样的方法:
-(void)showLeaderBoard
{
GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewController alloc] init];
if (leaderboardController != nil){
leaderboardController.leaderboardDelegate = self;
[self presentModalViewController: leaderboardController animated: YES];
}
}
我想在SKScene
文件中调用该方法。
答案 0 :(得分:2)
执行此操作的一种方法称为委派。简而言之,您允许视图控制器作为对象的委托,因此当对象想要执行视图控制器所做的操作时,它可以告诉其委托(视图控制器)何时执行它。
第1步: 在对象上创建委托属性(在对象.h文件中):
// be sure to import the view controller's header here
@property (nonatomic, retain) YourViewControllerClass *delegate;
第2步: 在视图控制器中创建对象时,将视图控制器设置为对象委托:
SKScene *theScene = // however you create your scene object here
theScene.delegate = self;
第3步: 在视图控制器的标题中公开您希望对象调用的任何方法:
- (void)showLeaderBoard;
第4步: 如果您愿意,请告诉对象的委托做您想做的任何事情(在SKScene .m文件中):
[self.delegate showLeaderBoard];