10

私は問題を抱えており、問題を説明しようとします:

  1. 私は1つのメインを持っていUIViewControllerます(全画面)
  2. セカンダリが 1 つありますUIViewController(setbounds)
  3. mainViewこれを使用して、セカンダリ ビューを追加しました。

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

    [secondaryController presentModalViewController:modalController animated:YES];
    
  5. 内のいくつかのイベントに基づいて微積分を作成しますmodelController

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

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

    注:「自己」は、modalController

  7. 「myObject」を my に渡す必要がありますが、からmainControllermy を参照できません。私はこれを試しました:mainControllersecondaryController

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

    注:「自己」は、secondaryController

    しかし、それは機能しません。次を使用して、mainController のビューにアクセスできます。self.view.superview

    注:「自分」は私ですsecondaryController

しかし、そのコントローラーにはありません。

4

1 に答える 1

34

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

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

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

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

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

于 2009-06-23T18:46:23.190 に答える