0

3 つの通常のビューがあり、それぞれがビュー コントローラーによって制御されます。

    view1---->View1controller (rootviewcontroller)
       view2---->View2controller
      view3---->View3controller

次に、特別なモジュールがあります

             View4--->View4controller

何が起こったかは、rootviewcontroller にバックグラウンド スレッドが存在することです。ビュー 1、ビュー 2、またはビュー 3 のいずれかである可能性があります。特定の条件が発生すると、バックグラウンド スレッドが View4 を起動します。

     [presentviewcontroller:View4controller]

View4 を一番上に上げたいのですが、view2、View3 のどちらにいるかは問題ではありません。しかし問題は、表示するコードが View1controller にあることです。したがって、私がview2にいて、特別な条件が満たされている場合、View1controllerのバックグラウンドスレッドからUIAlertViewがポップアップし、特別な状態が発生したことをユーザーに伝えます。

では、View2 にいるときに View1controller から View4 を TOP に表示するにはどうすればよいですか?

4

1 に答える 1

0

私はあなたがそのようにすることはできないと信じています。おそらく次のようなものを使用して、view4をView2に渡して表示させる必要があります。

@property UIViewController *currentView;
@synthesize currentView;
//and when trying to push view4 do the following
if (currentView!=nil) {

[currentView presentViewContoller:View4Cont];

}

または、view1 を使用して View2 を閉じ、View4 を同時に表示します (animated プロパティ = NO を使用)。

また、インターフェイス固有の操作はすべてメイン スレッドから実行するようにしてください。

于 2012-07-14T16:03:30.680 に答える