this tutorialを使用してBen Gottlieb's Twitter-OAuth-iPhoneコードを自分のcocos2d 0.99.5プロジェクトに統合しようとしています。 View Controllerを適切にロードするのにいくつかの問題があります。以前は標準のCocoa Touch UIのものとcocos2dを混ぜたことはありませんでした。新しいビューコントローラが表示され、CCSceneの後ろに消えます
それは、Twitterに接続する時が来たときに私は私のアプリデリゲートに次のコードを呼び出す:
-(void) twitterAccountLogin
{
UIViewController *controller = nil;
if (!_engine) {
_engine = [[SA_OAuthTwitterEngine alloc] initOAuthWithDelegate: self];
_engine.consumerKey = kOAuthConsumerKey;
_engine.consumerSecret = kOAuthConsumerSecret;
controller = [SA_OAuthTwitterController controllerToEnterCredentialsWithTwitterEngine: _engine delegate: self];
}
if (controller) {
[[CCDirector sharedDirector] stopAnimation];
[viewController presentModalViewController:controller animated:YES];
[controller release];
return;
}
}
これが呼び出されると、TwitterのUIViewController
が作成され、それはできるだけ早くそれとして、その後、画面上のアニメーション化、およびアニメーションが終了すると(つまり、画面の一番上に表示されます)、消えます。現在実行中のCCScene
が再表示されますが、タッチには反応しません。シミュレータでは、実行中のシーンが再表示される代わりに、画面が黒くなります。それが不明な場合は、が最近0.9935でcocos2dに追加されたRootViewController
です。
UIViewController
が作成されていて、なんとか実行中のシーンの下に描かれているようですが、デバッグはどこにもありません。どこが間違っていたのですか?
私はviewControllerがプロジェクトのRootViewControllerであることを明確にすべきでした。ビューをサブビューとしてCCDirectorに追加すると、アプリケーションがクラッシュする無限ループが作成されます。説明を明確にするために質問が編集されました。私は助けに感謝します! – jonmorgan
あなたのviewControllerを次のように宣言した場合、 viewController = [[UIViewController alloc] initWithNibName:nil bundle:nil]; 私は動作すると思う.. – xuanweng