2012-01-14 9 views
0

私は別のViewControllerへのリンクを持つメインビューを持っています。私のビューの1つにいくつかのフォームフィールドがあり、正常に更新されると、UIAlertViewが呼び出されてユーザーに通知されます。ユーザーが解雇すると、alertView:clickedButtonAtIndex:が呼び出され、I dismissModalViewControllerAnimated:がメインビューに戻ります。alertView dismissModalViewControllerAnimated

私が抱えている問題は、これを行うとviewDidLoadメソッドを呼び出さないということです。私は更新する必要がある変数を持っている、誰かが何が呼び出されているか教えてくれますか?私は更新を行うことができるように何かを見つけることができません。

答えて

0

この状況を処理する簡単で柔軟な方法は、コントローラのメソッドを公開してリセットすることです。このように、任意の不測のシナリオでは、あなたは常にこのメソッドを呼び出すと、あなたの値が設定されていることを知ることができます。

@interface MyController 
- (void)reset; 
@end 

@implementation MyController 
- (void)reset{ 
    //set some defaults 
} 
- (void)viewDidLoad{ 
    [self reset]; 
} 
- (void)viewWillAppear{ //<--If you want to reset your values every time the view is about to appear 
    [self reset]; 
} 
- (void)viewDidDisappear{ //<--If you want to reset your values every time the view is either dismissed, covered, or hidden 
    [self reset]; 
} 
@end 

そして、いくつかの追加の読書あなたのalertView:clickedButtonAtIndex:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ 

    if (buttonIndex==0) { //whatever your situation is 
     //dismissModalViewControllerAnimated: 
     [self.myController reset]; 
    } 
} 

に:UIViewController

+0

'viewDidLoad'は、ビューがロードされた後に一度呼び出されます。これは、コントローラの寿命の間、複数回である可能性があります。 – tia

+0

ありがとうございました!私はリセット機能についても同じことを考えていましたので、今度は - (void)viewWillAppear:(BOOL)によってアニメーションされ、あなたがすべて記述したごとに呼び出されます。コントロールパネルビューとフォームビューがあります。 self.myControllerのリセットがここに入りませんでした。 – Harpua

1

viewWillAppearおよびviewDidAppearは、ビューコントローラが表示されるときに呼び出されます。これらの機能でデータが更新されたかどうかを確認し、それに従ってビューを更新することができます。

関連する問題