0

親のViewControllerとポップオーバー用の別のViewControllerがあります。ポップオーバーは正しく解除されます。親ViewControllerのボタンを押すと、意図したとおりにポップオーバーが生成されます。ポップオーバービューにはボタンがあり、押すと親ビューのボタンの色が変わります。

私が抱えている問題は、ポップオーバーのボタンを押すと閉じますが、親ViewControllerのボタンは変更されないということです。

[self.view setNeedsDisplay]親のViewControllerで試しました。ポップオーバーデリゲートメソッドとメソッドでこれを呼び出してみました- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController。後者のメソッドは呼び出されません。前者のメソッドが呼び出されますが、親ViewController内のビューは再描画されません。

performSelector: withObject: afterDelay:運が悪かったので、再描画に遅延を追加しようとしました。

動作しなかったボタンオブジェクト自体を再描画しようとしました。私も運が悪かったのでremoveFromSuperview電話する前に電話をしました。setNeedsDisplay

私が行った調査に基づいて、私はこのアプリでいかなる種類のマルチスレッドも行っていないことを述べる必要があると感じています。また、この小さなアプリはストーリーボードで構築されています。

4

1 に答える 1

0

を使用するときに単純な間違いを犯していましたsetNeedsDisplaysetNeedsDisplayドキュメントを読んだ後、内容が変更された場合は再描画されることに気付きました。コンテンツを正しく変更していなかったため、変更がトリガーされませんでした。

ポップオーバーも閉じたデリゲートメソッド中にボタンの色を変更しました。色の変更後、電話しsetNeedsDisplayました。これはうまくいきました。

于 2013-01-26T03:42:49.107 に答える