4

よし、メインビューからポップオーバーを作った。しかし、ポップオーバー内のボタンが押されたときに、ポップオーバーがメイン ビューでアクションを呼び出すようにしたいと考えています。

MainView *mainView = [[MainView alloc] initWithNibName:@"MainView" bundle:nil]; [mainView doStuff];

「dostuff」関数は、ビュー内のいくつかの要素を変更します。たとえば、ツールバーの色を変更するとします。印刷コマンドを入力すると、印刷コマンドが実行されます。しかし、何らかの理由で、ツールバーの色が変わりません。

  • MainView のヘッダーをポップオーバーにインポートしました。
  • ポップオーバーで MainView に対して @class を実行しました。
  • doStuff は MainView のヘッダーで宣言されています。
  • IBOutlets も宣言され、接続されています。

何か案は?

4

1 に答える 1

1

ポップオーバーが表示されているビュー (ビュー コントローラー) を確認する直接的な方法がないのは残念です。私がタブベースのアプリケーションでやっていることは次のとおりです。

New_iPadAppDelegate *appDel = (New_iPadAppDelegate *)[[UIApplication sharedApplication] delegate];
    NSArray *viewConts = [(UINavigationController *)[[appDel tabBarController] selectedViewController] viewControllers];
    MainViewController *viewController =  (MainViewController *)[viewConts lastObject];
    if([[viewController popoverController] isPopoverVisible]){
        [viewController doStuff];
    }

お役に立てれば、

これが最善の方法ではないことは承知しています。Apple がこの問題について考えてくれることを期待するか、誰かが回避策を考案してくれることを願っています。

ありがとう、

マドゥップ

于 2010-03-22T09:41:44.347 に答える