ゲームが終了するとスコアが表示されるアプリSpriteKit
を xcode で作成しました。Facebook にスコアを投稿する機能を追加したいと考えています。ほとんどすべてのコードは、MyScene.m
アクセスできない場所にありますpresentViewController
。私の ViewController.m ファイルだけがそれにアクセスできるので、Myscene.m から Viewcontroller のインスタンス メソッドを呼び出してみましたが、それを行う方法が見つかりません。他のファイルからメソッドを呼び出すことがわかった唯一の方法+(void)
は、私が思うクラスメソッドを使用することです。
Myscene.m:
if (location.x < 315 && location.x > 261 && location.y < 404 && location.y > 361) {
//if you click the post to facebook button (btw, location is a variable for where you tapped on the screen)
[ViewController facebook];
}
ViewController.m:
+(void)facebook{
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
SLComposeViewController *facebook = [[SLComposeViewController alloc] init];
facebook = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
[facebook setInitialText:@"initial text"];
}
}
それは機能し、facebook クラス メソッドを正しく呼び出しましたが[self presentViewController:facebook animated:YES]
、setInitialText ブラケットの後に置くと、次のエラーが表示されます。セレクター 'presentViewController:animated:' の既知のクラス メソッドはありません
ちなみに、presentViewController
インスタンス メソッドで使用できますが、クラス メソッド内または Myscene ファイルからそのメソッドを呼び出すことはできません。別のファイルからインスタンス メソッドを呼び出す方法、またはpresentViewController
クラス メソッドからアクセスする方法はありますか? ありがとう