0

私は iPhone アプリを開発しています。私は AppDelegate に UINavigationControlller を持っています。私は他のビューに更新ボタンを持っています。ボタンにはボタンをクリックする際の IBAction メソッドがあります。私はこのコードを使用しています

 [AppDelegate.navigationController.topViewController.view setNeedsDisplay];

私の問題は、これらのボタンをクリックしてページを更新(リロード)する方法です.setNeedsDisplayメソッドはビューライフサイクルメソッドと呼ばれません. viewDidLoad,viewWillAppear

私はそれを正しくやっていますか、それとも私がしていることをする方法はありますか?

前もって感謝します。

4

2 に答える 2

2

viewControllerをリロードする代わりに、必要なデータを更新するメソッド(または2つ以上)を作成する必要があります。これにより、後で関数を追加する際の付随的な問題を回避できます。

于 2012-11-07T17:02:07.767 に答える
0

setNeedsDisplay は、viewDid/Will などのビューコントローラーのライフ サイクル メソッドを呼び出しません。UIViewController ではなく、UIView で setNeedsDisplay を呼び出しています。

setNeedsDisplay は、UIView とそのサブビューの再描画をトリガーします。ビューの drawRect: にブレークポイントを設定すると、ボタンを押すとヒットすることがわかります。

于 2012-11-07T13:04:27.870 に答える