1

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

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

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

4

1 回答 1

2

一种方法称为委托。简而言之,您允许视图控制器成为对象的委托,因此当对象想要执行视图控制器所做的某事时,它可以告诉其委托(视图控制器)何时执行此操作。

第 1 步:在对象上创建委托属性(在 objects .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];
于 2014-08-25T23:49:41.020 回答