0

DefaultViewController「UINavigationController」でもないViewController を持つストーリーボードがありUITabBarControllerます。次のコントローラーを登録画面にするかホーム画面にするかを決定します。

そこから始まる 2 つのセグエがあります。1 つUINavigationController' that does registration while other moves to 'UITabBarControllerはデフォルトのホーム画面です。

DefaultViewController呼び出しはViewDidAppear:メソッドで次のことを行います

NSString *theController = nil;
if ([AppState sharedAppState].currentUserState == Registered) {
    theController = @"HomeSegue";
} else {
    theController = @"RegSegue";
}

[self performSegueWithIdentifier:theController sender:self];

セグエは、iOS シミュレータ 5.1.1 および 6.0 で適切に実行されます。ただし、iOS 5.1.1 を搭載した iPhone または iOS 6.0 を搭載した iPhone でコードを実行しても何も起こりません。ビューはDefaultViewControllers ビューのままです。

編集 まったく新しいプロジェクトを作成し、そこで正常に動作しますが、古いストーリーボードの内容とクラスをコピーすると、問題が再発します.. !!

** 編集 2 ** UINavigationController に関連付けられている RootViewController を削除し、ラベルが付いた単純な UIViewController を追加したところ、正常に動作しました。Custom RegistrationController をルート コントローラーとして追加すると、セグエは実行されません。

PS 私のカスタムRegistrationControllerは、別のコントローラーを childViewController として追加します。

4

1 に答える 1

0

奇妙な..非常に非常に奇妙..しかし、それが私がそれを機能させる方法です。

これRegistrationControllerは、navigationController の一部であり、RegInfoControllerサブビューと子コントローラーの両方として追加されたインスタンスを作成しました。

そのchildController のawakeFromNibメソッドをオーバーライドするだけで、機能し始めました。

シナリオを確認するために、メソッドを削除したところ、機能しなくなりました..

于 2013-02-19T12:22:03.247 に答える