1

Webビューを備えたアプリ(最初のアプリ)を作成しようとしています。Storyboardを使用し、完全に機能するWebViewを実装しました。しかし、Facebookを使用してログインする必要があったため、ストーリーボードに新しいビューを追加し、ログインステータスに基づいてルートビューをロードしたいと思います。ビューを初期ビューコントローラーとしてマークすると、アプリは機能してそのビューを表示しますが、ビューを表示する直前にそれを変更するにはどうすればよいですか?

このコードを試しましたが、機能しません。

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *vc =[storyboard instantiateViewControllerWithIdentifier:@"LoginViewController"];

// Set root view controller and make windows visible
self.window.rootViewController = vc;
[self.window makeKeyAndVisible];

「2012-12-1216:40:51.219 MoonBooster [15056:c07] UIMainStoryboardFile'MainStoryboard'のデフォルトのViewControllerのインスタンス化に失敗しました-おそらく指定されたエントリポイントが設定されていませんか?」

ビューの識別子がどこから取得されているのかわかりません。NavまたはTabViewControllerを使用していないため、ストーリーボードもセグエも使用しないようにアプリを再設計することを考えています(必要ありません)。 )だから私はモーダルセグエしか使えません。

ご協力ありがとうございました

4

1 に答える 1

1

ビューコントローラの識別子は、IDインスペクタで設定されます。これは、Identity見出しの下にあり、StoryboardIDと呼ばれます。

あなたのアプリの構造に関しては、あなたがしているのと同じようなことをしようとしているポスターがたくさん見られますが、それは正しいアプローチではないと思います。アプリの起動時に必要なメインビュー(スプラッシュ画面やログイン画面を除く)は、ルートビューコントローラーである必要があります。ログイン画面が必要な場合は、メインのViewControllerのviewDidAppearメソッドからモーダルに表示します。ログイン画面が表示されているときにメインビューを短時間表示したくない場合は、アニメーションを[いいえ]に設定します。ログインが成功した場合は、ログインコントローラを閉じるだけで、準備が整います。失敗した場合は、別の画面またはアラートでユーザーに通知し、ログインコントローラーを閉じないでください。

于 2012-12-12T17:14:43.203 に答える