0

「myWebView」というUIWebViewを含むmainViewControllerというviewControllerがあります。mainViewControllerは、subViewControllerと呼ばれるポップオーバーviewControllerを提供します。subViewControllerには、myWebViewをリロードするためのボタンがあります。このようなことをする:

   mainViewController *vc = [[mainViewController alloc] init];

mainViewControllerの別のインスタンスを作成するため、機能しません。現在ポップオーバーウィンドウを表示しているmainViewControllerにmyWebViewをリロードするにはどうすればよいですか。

4

1 に答える 1

1

私があなたの質問を誤解しない限り、これはかなり簡単に理解できるようです。UIPopoverControllerから通知を送信できると思います。まず、viewWillAppearのメインビューコントローラーで、オブザーバーとして自分自身を追加します。

     [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(reloadMyWebView:) name:@"reloadWebView" object:nil];

実際のリロードを行うメソッドをメインビューコントローラーに実装する必要があります。これは次のようになります。

    - (void)realoadMyWebView:(NSNotification *)notification

viewWillDisappearでオブザーバーとして自分自身を削除してください

   [[NSNotificationCenter defaultCenter]removeObserver:self];

次に、ポップオーバーコントローラーからの通知を投稿できます

   [[NSNotificationCenter defaultCenter]postNotificationName:@"reloadWebView" object:nil userInfo:nil];
于 2012-08-10T14:39:46.507 に答える