WebとStackOverflowを何時間も検索してきましたが、この問題を解決できません。私はそれを見つけることができないので、皆さんが私の間違いを見てくれることを願っています。
始めたばかりのシンプルなストーリーボードベースのアプリケーションがあります。最初のViewControllerは、テンプレートからの2つのダミーViewControllerを持つUITabBarControllerのインスタンスです。起動時に、デバイスが外部サービスにログインしているかどうかを確認する必要があります。そうでない場合は、ユーザーが認証できるようにするモーダルViewControllerを表示します。デバイスが認証されている場合は、FirstViewControllerのみを表示します。
次の手順は、プロジェクトの作成以降に行ったすべての手順です。
- ストーリーボードにAuthenticateViewControllerシーンを作成します
- AuthenticateViewControllerのコードファイルを作成し、対応するシーンに割り当てます
- UITabBarControllerサブクラスのコードファイルを作成し、最初のUITabBarControllerシーンをその新しいサブクラスに関連付けます
- UITabBarControllerシーンからAuthenticateViewControllerシーンまでのストーリーボードに新しいセグエを作成します
viewDidLoad
UITabBarControllerサブクラスからセグエを手動で呼び出す
アプリケーションを実行すると、モーダルセグエが起動せず、UITabBarControllerの最初のViewControllerが表示され、XCodeで次の出力が得られます。
Warning: Attempt to present <AuthenticateViewController: 0x83c0c10> on <EPTabBarController: 0x83be600> whose view is not in the window hierarchy!
以下の関連コード、実際、これまでに追加した唯一のコード。スクリーンショットや追加情報が役立つかどうか教えてください。よろしくお願いします。
EPTabBarController、UITabBarControllerのサブクラス:
#import "EPTabBarController.h"
#import "AuthenticateViewController.h"
@interface EPTabBarController ()
@end
@implementation EPTabBarController
- (void)viewDidLoad
{
[super viewDidLoad];
[self performSegueWithIdentifier:@"authenticationSegue" sender:self];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end