0

モーダルビューを使用して設定ページを表示しているiPhoneアプリケーションがあります

[self presentmodalviewcontroller:tempcontroller animated:yes];

ユーザーが設定を完了すると、前のページに戻ることができます。

[self.dismissmodalviewcontroller animated:YES];

ここで、ユーザーが設定ページから戻ってきたときにメインページをリロードしたいと思います。私はそれを実現する@protocol and delegateために使用すべき場所をいくつか読みました。このトピックに関するWeb上のチュートリアルのいくつかを読みました。しかし、私はそれを行うことができませんでした@protocol and delegate。私はiPhoneの開発に慣れていないので、知識がありません。

いくつかの良いチュートリアルを手伝ってください。私の必要性を段階的に説明したリンクを提案していただければ幸いです。

あなたの助けを楽しみにしています...

前もって感謝します

喜び

4

2 に答える 2

2

別のより簡単なオプションは、 を使用することNSNotificationCenterです。これを見てください

iPhoneの前のビューにデータを送信する

于 2010-08-17T14:12:39.727 に答える
0

喜び、

別のモーダルを提示しているviewControllerがあるとしましょう-それを「ルート」と呼びます。

モーダルは「モーダル」と呼ばれます

「ルート」は、

[self presentModalViewController:Modal];

では、Root は Modal を終了するタイミングをどのように知るのでしょうか? これを行う最善の方法は、この動作の「プロトコル」を作成することです。

Modal のヘッダー ファイルには、次のようなコードがあります。

@protocol ModalViewDelegate <NSObject>

-(void)modalViewControllerDidFinish:(UIViewController *)viewController;

@end

次に、モーダルのインスタンス変数が必要です。

id<ModalViewDelegate> delegate;

プロパティで:

@property (assign) id<ModalViewDelegate> delegate;

これにより、Modal がプロパティ 'delegate' にメッセージを送信するたびに、-(void)modalViewControllerDidFinish: メソッドがあることがわかります。

では、モーダル内に閉じたいボタンがあるとしましょう。ボタンは単に呼び出す必要があります[delegate modalViewControllerDidFinish:self];

root のヘッダー ファイルで、次のようにクラスを宣言します。

@class Root : UIViewController <ModalViewDelegate>

そして、modalViewControllerDidFinish メソッドを次のように実装します。

-(void)modalViewControllerDidFinish:(UIViewController *)controller {
    // any action you need to take on controller
    [self dismissModalViewControllerAnimated:YES];
}

これは理にかなっていますか?

于 2010-08-17T14:03:55.957 に答える