1

セグエ「ページカール」を備えた2つのビューコントローラーがあります

viewcontrollerA => pagecurl => viewcontrollerB そして、ユーザーがviewcontrollerBで変更を加えたので、viewcontrollerAを更新したいと思います。

私が試した:

UIStoryboard*  sb = [UIStoryboard storyboardWithName:@"mystoryboard"
                                          bundle:nil];
UIViewController* vc = [sb instantiateViewControllerWithIdentifier:@"ExampleViewController"];
[vc ViewDidLoad]; // or ViewWillAppear or ViewDidApear

これらの関数に入れた NSLog に対してのみ機能します。しかし、どれも Coredata をチェックアウトしてインターフェースを更新する関数では機能しません。助けてください

4

4 に答える 4

2

このコードを試してください:

親クラスを追加します

[[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(actionremovecalender:)
                                                 name:@"subMitReport"
                                               object:nil];
-(void)actionremovecalender:(NSNotification *)notification
{
    [self ViewDidLoad]
}

子クラスを呼び出す

[[NSNotificationCenter defaultCenter]postNotificationName:@"subMitReport" object:nil]
于 2013-06-26T11:11:27.057 に答える
0

1 対 1 の関係では、委任パターンを優先する必要があります。viewcontrollerA の弱参照を viewcontrollerB に追加するだけです。参照を使用して viewcontrollerA のメソッド (この場合は viewDidLoad メソッド) を呼び出すだけで、ビューを更新できます。しかし、2 つのビュー コントローラーの密結合を防ぐために、委任のプロトコルを宣言することをお勧めします。

于 2013-06-26T11:20:58.073 に答える
0

親が受け取る NSNotification を送信するか、親ビューによって実装されたメソッドでデリゲートを設定できます。

どちらの場合も、ビューをリロードするだけです。

于 2013-06-26T11:04:03.317 に答える