ios – 如何通过代码从SKScene转到UIViewController?

ios – 如何通过代码从SKScene转到UIViewController?,第1张

概述我想要的只是当用户触摸skscene中的skspritenode时,它将转到不同的视图,如performseguewithidentifier.谢谢你的帮助.我可以发布代码,但它似乎是一个通用的问题所以我认为你不需要任何代码.顺便说一下,我已经想出了如何检测轻敲skspritenode.我一直在看这个很长一段时间,我很难过.请帮忙. 您无法在SKScene中呈现viewController,因为它 我想要的只是当用户触摸skscene中的skspritenode时,它将转到不同的视图,如performseguewithIDentifIEr.谢谢你的帮助.我可以发布代码,但它似乎是一个通用的问题所以我认为你不需要任何代码.顺便说一下,我已经想出了如何检测轻敲skspritenode.我一直在看这个很长一段时间,我很难过.请帮忙.解决方法 您无法在SKScene中呈现vIEwController,因为它实际上仅在SKVIEw上呈现.您需要一种方法将消息发送到SKVIEw的vIEwController,后者将呈现vIEwController.为此,您可以使用委派或NSNotificationCenter.

代表团

将以下协议定义添加到SKScene的.h文件中:

@protocol sceneDelegate <NSObject>-(voID)showDifferentVIEw;@end

并在界面中声明一个委托属性:

@property (weak,nonatomic) ID <sceneDelegate> delegate;

然后,在您要显示共享屏幕的位置,使用以下行:

[self.delegate showDifferentVIEw];

现在,在vIEwController的.h文件中,实现协议:

@interface VIEwController : UIVIEwController <sceneDelegate>

并且,在.m文件中,在显示场景之前添加以下行:

scene.delegate = self;

然后在那里添加以下方法:

-(voID)showDifferentVIEw{    [self performSegueWithIDentifIEr:@"whateverIDentifIEr"];}

NSNotificationCenter

保持-showDifferentVIEw方法,如上一个替代方案中所述.

将vIEwController作为监听器添加到它的-vIEwDIDLoad方法中:

[[NSNotificationCenter defaultCenter] addobserver:self selector:@selector(showDifferentVIEw) name:@"showDifferenVIEw" object:nil];

然后,在要显示此vIEwController的场景中,使用以下行:

[[NSNotificationCenter defaultCenter] postNotificationname:@"showDifferentVIEw" object:nil];
总结

以上是内存溢出为你收集整理的ios – 如何通过代码从SKScene转到UIViewController?全部内容,希望文章能够帮你解决ios – 如何通过代码从SKScene转到UIViewController?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1100161.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存