1

2つのシーンがあります。通常のフルスクリーンiPadビューと別のポップオーバービュー。ボタンをタップすると、ポップオーバービューが問題なく読み込まれます。ポップオーバービューには、アクションを実行し、ストーリーボードのモーダルトランジションにもリンクされているボタンがあります。

ポップオーバービューからボタンを押すと、ユーザーの選択状態が保存され、そのデータがメインビューに送信されるという考え方です。データの保存に問題はありません。問題なく動作します。

私が抱えている問題は、ポップオーバービューからボタンを押すと、メインビューのviewDidLoadメソッドが実際に完了してからポップオーバービューのIBActionメソッドが完了することです。したがって、メインビューはデータを取得しますが、ビューはすでにロードされているため、時間内にラベルを更新することはできません。

複数のポップオーバービューシーンを作成してみて、これらの新しいシーンにリンクする複数のボタンをメインビューに追加しました。奇妙な部分は、それらのいくつかがうまく機能することです。それらのいくつかはメソッドを実行しIBAction、モーダルトランジションを介してメインビューに戻ります。一方が他方の前にロードされる理由や韻はないようです。

考えられる解決策はIBAction、ポップオーバービューのメソッド内で手動で遷移を実行することだと思います。私は間違いなくこれに慣れていないので、私が見逃しているトランジションについて何か基本的なことがあるかもしれません。

4

2 に答える 2

2

ボタンが表示されているビューのビューコントローラで...セグエが実行されるとき。データを渡すことができます

 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // Make sure your segue name in storyboard is the same as this line
    if ([[segue identifier] isEqualToString:@"YOUR_SEGUE_NAME_HERE"])
    {
        // Get reference to the destination view controller
        YourViewController *vc = [segue destinationViewController];

        // Pass any objects to the view controller here, like...
        [vc setMyObjectHere:object];
    }
}

このメソッドは、ビューがロードされる前に呼び出されます。

于 2013-01-21T17:00:39.830 に答える
1

ポップオーバーを呼び出す場合は、メインビューがまだ背面にあるため、メイン画面でviewDidLoadメソッドを呼び出さないでください。代わりに、viewWillAppearメソッドとviewDidApperメソッドを呼び出す必要があります。

これを確認できますか?これらの2つのメソッドのいずれかが呼び出された後、メイン画面を更新する必要があると思います。

試してみて、結果を教えてください。

于 2013-01-21T17:01:55.753 に答える