从viewcontroller调用方法到类xcode

时间:2014-08-25 23:28:53

标签: ios xcode methods viewcontroller game-center-leaderboard

我不知道是否可能,但我想在类对象中调用视图控制器的方法。我在视图控制器的.m文件中有这样的方法:

-(void)showLeaderBoard
{
    GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewController alloc] init];
    if (leaderboardController != nil){
        leaderboardController.leaderboardDelegate = self;
        [self presentModalViewController: leaderboardController animated: YES];
    }
}

我想在SKScene文件中调用该方法。

1 个答案:

答案 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];