0

rootsview として単純なビューを持つナビゲーション コントローラーを取得しました。これには、seque を介して 2 番目のビュー コントローラーに接続されたボタンがあります。このシークにより、2 番目のビュー コントローラーがモーダルに表示されます。条件が真でない場合、アプリケーションの起動後にこの 2 番目のビュー コントローラーを直接表示したいと考えています。多くのコードを試しましたが、うまくいきません。ここに私のシーンのスクリーンショットがあります:私のシーン

これを行う方法はありますか?


私は次のことを試しました:

UIStoryboard *storybord = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
UINavigationController *vc = [storybord instantiateInitialViewController]; 
[[vc.viewControllers objectAtIndex:0] performSegueWithIdentifier:@"simple" sender:self];

しかし、次のエラーメッセージが表示されました:

ビューがウィンドウ階層にない<UINavigationController: 0x71b2ab0>上に表示しようとしています!<UINavigationController: 0x71b12c0>

4

1 に答える 1

1

アプリデリゲートのサンプルコードを試していると思いますか? 最初のビューが読み込まれるまで、セグエを実行しようとしないようにする必要があります。偶然にも、それまで待っていれば、必要なことはずっと簡単ですperformSegueWithIdentifier。したがって、viewDidLoad最初のView Controllerの場合、たとえば次のようになります。

if (bShouldAutomaticallyPerformSegueToSecondVC)
    [self performSegueWithIdentifier:@"simple" sender:self];

明らかにbShouldAutomaticallyPerformSegueToSecondVC、2 番目のビュー コントローラーに自動的に移動するタイミングを決定するために適切なロジックに置き換えます。

于 2012-11-10T16:23:23.540 に答える