質問

問題があり、問題の説明を試みます:

  1. メインの UIViewController (画面全体)が1つあります
  2. セカンダリ UIViewController (setbounds)
  3. が1つあります
  4. これを使用して mainView にセカンダリビューを追加しました:

    [mainController.view addSubview:secondaryController.view];   
    
  5. 3番目のコントローラーを作成しました: modalController 、次のようにセカンダリコントローラーに追加しました:

    [secondaryController presentModalViewController:modalController animated:YES];
    
  6. modelController 内のいくつかのイベントに基づいて計算を行います。

  7. 次を使用して、 modalController から secondaryController にメッセージを送信できます。

    [[self parentViewController]  performSelector : @selector(myMethodInSecondaryController:) withObject : myObject afterDelay : .5];
    

    注:" self" modalController

  8. に対応
  9. " myObject"を渡す必要があります。 mainController にアクセスできますが、 secondaryController から mainController への参照を作成できません。私はこれを試しました:

    [[self parentViewController] performSelector : @selector(myMethodInMainController:) withObject:myObject afterDelay : .5];
    

    注:" self" secondaryController

    に対応

    しかし機能しません。 self.view.superview

    を使用してmainControllerのビューにアクセスできます。

    注:" self"私の secondaryController

ただし、コントローラーにはありません。

役に立ちましたか?

解決

セカンダリコントローラーで試してください

id mainViewController = [self.view.superview nextResponder];

これが探しているView Controllerかどうかを確認します。

-[UIResponder nextResponder]のAppleのドキュメント

  

UIViewは、それを管理するUIViewControllerオブジェクト(ある場合)またはそのスーパービュー(ない場合)を返すことにより、このメソッドを実装します

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top