展示 SkScene 中的另一个视图控制器

2023-12-14

我正在尝试展示另一个viewController来自我的“SkScene”。 这是我的主要viewController(tuViewController)

Code:

-(void) openTweetSheet{
    FacebookLikeViewDemoViewController *ctrl = [[FacebookLikeViewDemoViewController alloc] initWithNibName:@"FacebookLikeViewDemoViewController" bundle:nil];

    [self presentViewController:ctrl animated:YES completion:nil];
}

这是我的“SkScene”:

tuViewController *viewController = [[tuViewController alloc]init];
[viewController openTweetSheet];

And the viewController我想介绍的是FacebookLikeViewDemoViewController我需要回到“SkScene”。

我得到了sigabrt error,我尝试了几种方式来呈现viewController但总是失败,有一次我被交换到viewController但它完全是黑色的。我读了很多如何执行此操作的文章,但我个人无法弄清楚。我感谢您的帮助。

我也尝试过通知中心。

主视图控制器

[[NSNotificationCenter defaultCenter]
 addObserver:self
 selector:@selector(goToGameOverViewController:)
 name:@"GoToGameOverViewController"
 object:nil];

-(void)goToGameOverViewController:(NSNotification *) notification {
    FacebookLikeViewDemoViewController *helpVC = [[FacebookLikeViewDemoViewController alloc]initWithNibName:@"HelpViewController" bundle:nil];
    UIViewController *rootVC = [UIApplication sharedApplication].keyWindow.rootViewController;
    [rootVC presentViewController:helpVC animated:YES completion:nil];
}

SkScene

[[NSNotificationCenter defaultCenter]
 postNotificationName:@"GoToGameOverViewController" object:self];

但我得到了同样的错误。我更喜欢弄清楚为什么通知方式不起作用。


根据你的问题,我假设你正在寻找一些社交媒体发布。

您可以将视图控制器的引用传递给 SKScene,也可以使用NSNotificationCenter反而。我更喜欢使用后者。

首先确保您已将 Social.framework 添加到您的项目中。

将社交框架导入到您的视图控制器中#import <Social/Social.h>

然后在你的视图控制器中viewDidLoad方法添加此代码:

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(createTweet:)
                                             name:@"CreateTweet"
                                           object:nil];

接下来将此方法添加到您的视图控制器中:

-(void)createTweet:(NSNotification *)notification
{
    NSDictionary *tweetData = [notification userInfo];
    NSString *tweetText = (NSString *)[tweetData objectForKey:@"tweetText"];
    NSLog(@"%@",tweetText);

    // build your tweet, facebook, etc...
    SLComposeViewController *mySLComposerSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
    [self presentViewController:mySLComposerSheet animated:YES completion:nil];
}

在 SKScene 中的适当位置(赢得比赛、输掉比赛等)添加以下代码:

NSString *tweetText = @"I just beat the last level.";
NSDictionary *userInfo = [NSDictionary dictionaryWithObject:tweetText forKey:@"tweetText"];
[[NSNotificationCenter defaultCenter] postNotificationName:@"CreateTweet" object:self userInfo:userInfo];

上面的代码发送一个带有文本的 NSNotification,您的视图控制器将拾取该文本并执行指定的方法(在上面的示例中是 createTweet)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

展示 SkScene 中的另一个视图控制器 的相关文章

  • SKPhysicsJoint:接触和碰撞不起作用

    在 IOS7 1 上 使用 SpriteKit 我创建了两个简单的矩形精灵以及相应的物理体 我设置了接触和碰撞位掩码 所有工作都完全符合我的预期 检测到接触并且碰撞防止两个矩形重叠 但是 当我创建 SKPhysicsJointSpring
  • SpriteKit 中的水平滚动(与视图控制器相比)

    我对解决这个问题的正确方法有点困惑 在我的游戏中 我允许玩家从 5 个区域中进行选择 区域只不过是屏幕上的一个矩形 其中包含该区域的完成百分比 整个列表居中 看起来不错 最终会有更多区域 但我不希望它们位于多行上 我希望玩家滑动以滚动它们
  • 为什么我的 ViewController 重新打开后不显示另一个 SKScene?

    所以现在我正在编写一个游戏 但遇到了一个我没有真正找到解决方案的问题 我会尽力为你描述它 所以 为了能够更好地解释我的问题 我为你们创建了一个示意图 现在问题是 我有两个视图控制器 一个称为MenuVc 另一个称为GameVC In Gam
  • SpriteKit - 获取最近的节点

    有没有办法获得距离节点最近的节点 我正要编写一个方法来迭代所有节点并计算距离等 但想知道是否有更好的方法 我有 30 个节点 需要距离这 30 个节点中的每一个最近的 2 个节点 如果有意义的话 从 iOS 10 开始 您可以使用空间分区功
  • enumerateBodiesAlongRayStart 在 Xcode 6 中将“Chance”打印到控制台

    我正在使用 enumerateBodiesAlongRayStart 并且此方法不断地将单词 Chance 打印到我的控制台 有什么办法可以抑制这种情况吗 这是怎么回事 self gameScene physicsWorld enumera
  • KVO vs NSNotification vs 协议/委托?

    我知道何时使用哪个 但确切的用法我仍然不清楚 有人可以举例解释吗 如果您只想与一个对象对话 请使用委托 例如 tableView 有一个委托 只有一个对象应该负责处理它 如果您想告诉每个人发生了什么事 请使用通知 例如 在内存不足的情况下
  • 如何避免添加多个 NSNotification 观察者?

    目前 API 似乎没有提供一种方法来检测是否已为特定 NSNotification 添加了观察者 除了在端维护一个标志来跟踪之外 避免添加多个 NSNotification 观察者的最佳方法是什么 有人已经创建了一个类别来促进这一点吗 防止
  • 使用 CGPathContainsPoint SWIFT 时遇到的问题

    我需要检查 CGPoint 是否位于 SKSpriteNode 内 经过一番研究后 CGPathContainsPoint 似乎适合我的目的 if CGPathContainsPoint my sprite path nil my poin
  • 使用 addObserverForName:usingBlock 时删除观察者

    我有以下代码 在视图加载中添加观察者 void viewDidLoad super viewDidLoad NSNotificationCenter defaultCenter addObserverForName com app live
  • 更改 SKPhysicsBody 的身体形状

    除了定义 SKPhysicsBody 形状的主体之外 我不想更改任何其他内容 我该怎么做呢 我似乎找不到在哪里可以改变这个 甚至评论如何改变它 是的 我知道这必须小心完成 以便避免所有可能的新碰撞 重叠等 但抛开这些 我如何更改 SKPhy
  • 如何在iOS社交框架中使用SLRequest获取facebook的电子邮件参数

    我尝试使用以下代码来获取登录 iOS 设置 Facebook 的人的电子邮件 请帮助我如何从 SLRequest 获取电子邮件 void getMyDetails if accountStore accountStore ACAccount
  • 添加事件侦听器到回合制 ios 游戏时出现警告

    这是 gamekithelper m 中的代码 void authenticateLocalPlayer 1 GKLocalPlayer localPlayer GKLocalPlayer localPlayer add a weak lo
  • 确定手势识别器中触摸的节点

    我有一个 SpriteKit 场景 其中可以有数千个不同的节点 我还在场景中实现了单击手势识别器 希望在触发手势识别器后能够确定场景中哪个节点被触摸 目前 我的 非工作 代码如下所示 objc func singleTap sender U
  • iOS SKSpriteNode - 离开屏幕

    有什么方法可以从父级中删除具有左区域边界的 SKSpriteNode 吗 例如 void didBeginContact SKPhysicsContact contact firstNode SKSpriteNode contact bod
  • SpriteKit 的相机抖动效果

    有谁知道一些开箱即用的库可能会提供相机抖动等效果SKNode 如果没有 是否有一种简单的方法可以使用动作来实现相机抖动 Thanks 我发现了一种使用 SKAction 的优雅方法 可以摇动你的节点 例如 水平摇动 void shake N
  • 使用 Swift 创建 SKSpriteNode 子类

    我正在尝试创建作为 SKSpriteNode 子类的类 并且我想向其添加其他属性和函数 但在第一步中我遇到了错误 这是我的代码 import SpriteKit class Ball SKSpriteNode init super init
  • ObjectAL自动中断处理错误

    我一直在 SpriteKit 游戏运行时打电话 以测试中断 我正在使用 ObjectAL 文档中的示例 名为 使用 OpenAL 对象和 OALAudioTrack http kstenerud github io ObjectAL for
  • Sprite 套件和 colorWithPatternImage

    我们是否有办法在一个区域内重复图像 例如 SKSpriteNode SKColor colorWithPatternImage不幸的是不起作用 Edit 我做了以下类别 到目前为止似乎有效 使用 Mac 未在 iOS 上测试 iOS 可能需
  • 当 isUserInteractionEnabled false 时,SKSpriteNode 不会让触摸通过

    我正在尝试在 SpriteKit 中创建一个覆盖层 方法是使用SKSpriteNode 但是 我希望触摸穿过覆盖层 所以我设置isUserInteractionEnabled为假 然而 当我这样做时 SKSpriteNode似乎仍然吸收所有
  • .showsPhysics 内存泄漏

    我最近花了 5 个小时尝试调试 Spritekit 应用程序中的内存泄漏 应用程序启动后 我注意到内存使用量略有上升 我花了 5 个小时中的 3 个小时挖掘参考资料 了解强与弱的关系ARC https developer apple com

随机推荐

  • Pig、Cassandra 和 DataStax 拆分控制

    我一直在使用 Pig 和我的 Cassandra 数据来完成各种令人惊奇的分组壮举 而这些壮举几乎不可能用命令式的方式编写 我正在使用 DataStax 的 Hadoop 和 Cassandra 集成 我不得不说它令人印象深刻 向那些家伙致
  • Ajillion PHP-MySQLi-数据库类更新命令

    使用 Ajillion 制作的 MySQLi 类 https github com ajillion PHP MySQLi Database Class 我想执行以下命令 command UPDATE sessions SET active
  • 如何从 Mayavi GUI 加载 CSV 文件?

    我知道如何将 CSV 读入 numpy 并通过 Python 脚本执行此操作 这对于我的用例来说已经足够了 但由于它有一个具有数据加载功能的 GUI 我希望它能够适用于这种通用数据格式 所以我尝试进入菜单 File 加载数据 打开文件 但是
  • 使用 Func<> 提高代码可读性的机会

    今天我终于 得到 了Func lt gt delegate 并了解了如何使用它来使我的一些可读性较差的 LINQ 查询 希望如此 更具可读性 这是一个简单的代码示例 以 非常 简单的示例说明了上述内容 List
  • T-SQL 中的“WHERE IN”[重复]

    这个问题在这里已经有答案了 可能的重复 参数化 SQL IN 子句 是否可以使用查询参数来填充IN关键字 您好 我在 SQL 查询中使用 WHERE IN 因为用户可能需要输入多个 id 来显示 的记录 以逗号分隔 我现在有这个 WHERE
  • 骨干模型保存

    我正在使用 Rails 并学习 Backbone 请帮帮我 有什么方法可以在保存时设置正确的模型吗 例如 当我创建带有一些参数的新用户并尝试将其保存到数据库中时 在服务器端 我没有将用户作为对象 而是将用户字段保存在参数中 保存用户的唯一方
  • 如何在java中使用fiddler捕获https

    我正在 Eclipse IDE 中运行以下 java 程序 import java net import java io public class HH public static void main String args throws
  • 默认整数值是什么?

    我在某处读到默认浮点值 例如1 2 are double not float 那么默认整数值是多少6 他们是short int or long 以 10 为基数给出的整数文字类型是以下列表中其值可以容纳的第一个类型 int long int
  • Spidermonkey 上的垃圾收集器问题...JS_AnchorPtr()?

    我推出了自己的 javascript 服务器端语言 称为 bondi 最近刚刚升级到新的蜘蛛猴 现在JS进入本地根和离开本地根的功能从1 8 5 api中消失 无用了 只使用锚点指针就足够了 JS AnchorPtr varname 在函数
  • Jasper Reports 中的子报表

    我有两个表格要打印在同一页上 这些表的数据将从自定义数据源的地图中提供 我需要实施它 我用谷歌搜索来实现这个任务 当时我遇到了子报告的概念 但我没有得到太多关于如何实现子报告的信息 我知道如何创建子报告 但我不知道如何使用自定义数据源填充子
  • jQuery UI 滑块 -> 支持鼠标滚轮?

    你可能已经知道我是 jQuery 的新手 所以不属于这个主题的代码改进仍然是非常允许的 这是我的 HTML 代码 div style display inline block width 120px div Bananas br div d
  • jasypt-spring-boot-1.17:属性解密失败,请确保加密/解密密码匹配

    我有 jasypt spring boot 1 17 带有 spring 版本 4 2 5 RELEASE 和 spring Boot 版本 1 5 3 RELEASE 我正在使用该网站的第一种方法 https github com uli
  • JavaScript 中同一行的多个比较/赋值运算符

    function test input var value input 1 在上面 函数内部的代码行在做什么以及它是如何工作的 首先是进行比较input 1 然后分配其结果 这将是true or false 变量value The is a
  • 如何自定义 HTML5 日期选择器

    我试图了解如何以特定方式自定义 HTML5 日期选择器 特别是格式类似于 日历图标 8 月 31 日 星期二右侧插入符号将打开日期选择器 经过一些初步搜索后 我找到了这些用于自定义日期输入文本框的伪元素 webkit datetime ed
  • c++ - FreeImage+OpenCV - 16 位图像扭曲

    我正在尝试加载图像 因为我必须对其应用算法 如果我加载每通道 8 位图像 则没有问题 但如果我加载 16bpc 图像 则会 毁掉 不幸的是 由于我没有足够的声誉 我无法上传图像 这些是它们的链接 源和 8bpc 处理结果 http post
  • 了解为什么 onCreateOptionsMenu 不显示菜单

    我正在阅读 Android For Dummies 一个例子使用了 onCreateOptionsMenu 我添加了一条日志消息 Override public boolean onCreateOptionsMenu Menu menu s
  • 字典递归比较程序

    我创建了一个程序来比较两个 python 字典并输出两者的差异 它适用于深度为 2 或更小的字典 我应该怎么做才能处理更深度的字典以及嵌套的字典 我遇到的另一个问题是 当我通过 get json 函数传递 json 数组时 它会作为列表返回
  • 使用 DirectShow 过滤器进行编码

    我正在努力将原始图像编码为 Windows 上的 avi 文件 可能使用 directshow 过滤器 使用的编解码器类型将由用户选择 我已经使用 Windows 视频 VFW 做了类似的事情 这很漂亮 因为它提供了简单的 api 来压缩数
  • 使用子进程时如何在 Python 中复制 tee 行为?

    我正在寻找一个 Python 解决方案 它允许我将命令的输出保存在文件中 而不将其从控制台隐藏 仅供参考 我问的是tee 作为 Unix 命令行实用程序 而不是 Python intertools 模块中的同名函数 Details Pyth
  • 展示 SkScene 中的另一个视图控制器

    我正在尝试展示另一个viewController来自我的 SkScene 这是我的主要viewController tuViewController Code void openTweetSheet FacebookLikeViewDemo