Ios 从viewcontroller调用方法到类xcode

Ios 从viewcontroller调用方法到类xcode,ios,xcode,methods,viewcontroller,game-center-leaderboard,Ios,Xcode,Methods,Viewcontroller,Game Center Leaderboard,我不知道这是否可行,但我想在类对象中调用视图控制器的方法。我在视图控制器的.m文件中有这样的方法: -(void)showLeaderBoard { GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewController alloc] init]; if (leaderboardController != nil){ leaderboardController.leade

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

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

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

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

步骤1:在对象上创建委托属性(在objects.h文件中):

步骤2:在视图控制器中创建对象时,将视图控制器设置为对象代理:

SKScene *theScene = // however you create your scene object here
theScene.delegate = self;
步骤3:公开您希望对象在视图控制器标头中调用的任何方法:

- (void)showLeaderBoard;
步骤4:如果需要,请告诉对象的代理执行您希望它执行的任何操作(在SKScene.m文件中):


你为什么不自己试试呢?我试着自己去弄清楚,但由于缺乏技能,我不知道怎么做。这就是你应该在你的帖子中提到的,你尝试了什么,你犯了什么错误。当然这是可能的,毕竟视图控制器是一个类。非常感谢迈克!我把它弄得乱七八糟的,差不多有半天了,还是没法让它工作。现在它太棒了。(Y) 嗯。。。还有一件事。当我在另一个场景中配置和创建新场景时,我应该如何在那里进行委派。“scene.delegate=self;”在这种情况下不起作用。在另一个场景中创建场景是什么意思?在MyScene.m文件中,当用户触摸“主页”按钮时,我创建并配置场景实际上是菜单.m场景。您想要相同的代理吗?您可以始终在那里传递委托引用,或者如果您希望另一个委托遵循与上面相同的模式。
- (void)showLeaderBoard;
[self.delegate showLeaderBoard];