0

ビュー A と B の 2 つのビューを持つ TabBar メッセージング アプリケーションがあります。ビュー A で、ビュー B にデリゲート メソッドを持つデリゲート タイプのオブジェクトを宣言しました。これにより、ビュー B のデリゲート メソッドが起動されます。この「何か」が発生するたびに私がしたいことは、ビュー A が表示されている場合、タブ バーでビューをビュー B に切り替えることです。ビュー B が表示されている場合、ビューには何も起こりません。どうすればこれを実現できますか?

TabBar とそれに関連付けられているすべてのビューは、appdelegate に読み込まれる別のビュー コントローラーにあるため、実際のアプリは上記のものよりも複雑です。(私はこのアプリの寄稿者であり、元の開発者は無限の知恵で物事を本当に謎めいたものにすることにしました。)そして、私は次のようなものを使用するソリューションを実装したくありません...

[self.tabBarController setSelectedIndex:1]

...それは私が望んでいる方法ではないからです。ビューAのデリゲートが呼び出されるたびに、Bのビューを表示したいだけです。ありがとう。

私は自分の投稿を編集しました: この行 [self.tabBarController setSelectedIndex:1] とその上下の句が 1 行を構成します。強調するために省略記号を入れました。

4

1 に答える 1

0

表示されているビューを確認したいだけの場合は、次の-isDesendentOfView:方法を使用できます。

  if([viewA isDescendentOfView:someView]) {
      //viewA is visible as a subview to `someView`
 }

編集:あなたの質問を読んだら。senderパラメータをデリゲートメソッドに送信して、それがどこから来たのかを判断したいと思います。..i、e:

デリゲートメソッドが次のように定義されている場合:

-(void)someMethod:(id)sender;

デリゲートでは、次のようなことを行います。

-(void)someMethod:(id)sender {

    UIView *aView = (UIView*)sender;

        if(aView == viewA) {

       }

        if(aView == viewB) {

       }
}  

これがお役に立てば幸いです、または少なくともそれを理解するための道にあなたを置いてください!

于 2012-06-09T08:58:13.350 に答える