我现在在做休闲游戏。
我想与Twitter分享分数。
我的这张工作图片如下。
1.玩家玩完游戏后,就有比分。
2,当游戏进入游戏场景时,他们可以按下Twitter按钮(使用social.framework)
3.有一个类似“您得到xx分数!!”的文本。在twitterdisplay(modal)中。
*我想将xx更改为共享分数。
你能给我一些建议吗?
我是Objective-C的初学者。因此,简单的方法对我来说更好。
我希望一点一点地关注安全性和可伸缩性。
[信息]
* MainScene和GameOverScene由SKScene制成
MainScene.m
@implementation MainScene {
//The score
NSInteger _score;
}
- (void)incrementScore
{
_score++;
}
GameOverScene.m
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
if([node.name isEqualToString:@"twitterbutton"]){
NSLog(@"self.delegate = %@",self.delegate);
[self.delegate showShareScreen];
//delegate to ViewController
if (nil == self.delegate) NSLog(@"delegate is nil");
}
}
ViewController.m
-(void)showShareScreen
{
NSLog(@"showShareScreen");
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter])
{
SLComposeViewController *tweetSheet = [SLComposeViewController
composeViewControllerForServiceType:SLServiceTypeTwitter];
tweetSheet.modalPresentationStyle = UIModalPresentationFormSheet;
tweetSheet.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[tweetSheet setInitialText:@"You got xx score"];
NSLog(@"self = %@",self);
[self presentViewController:tweetSheet animated:YES completion:nil];
}
else {
NSLog(@"not sls type twitter");
}
}
最佳答案
在ViewController的委托方法中更改行
[tweetSheet setInitialText:@“您获得xx分数”];
如下图所示;将分数包含在NSString的stringWithFormat:方法中
-(void)showShareScreenWithScore:(NSInteger) score {
NSLog(@"showShareScreen");
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter])
{
SLComposeViewController *tweetSheet = [SLComposeViewController
composeViewControllerForServiceType:SLServiceTypeTwitter];
tweetSheet.modalPresentationStyle = UIModalPresentationFormSheet;
tweetSheet.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[tweetSheet setInitialText:[NSString stringWithFormat:@"You got %d score",score]];
NSLog(@"self = %@",self);
[self presentViewController:tweetSheet animated:YES completion:nil];
}
else {
NSLog(@"not sls type twitter");
}
}
然后从GameOverScene调用此委托方法。
注意:在对象实例化后的那个时候在场景中创建Game over Scene时,可以设置GameOverScene的属性。因此,只需声明一个属性
@property (assign , nonatomic) NSInteger score;
并设置游戏结束的值Using NSURLSession。您可以从MainScene得分属性获得得分值。
NSURLSession
NSURLSession类和相关类提供了一个API
通过HTTP下载内容。该API提供了丰富的委托集
支持身份验证的方法,并为您的应用提供功能
在您的应用未运行时执行后台下载,或者
iOS,而您的应用已暂停。
关于ios - 如何在Objective-C中以不同的 View 共享本地var,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22728282/