2009-04-02 14 views
2

は、2つのビュー、独自のビューコントローラが扱う各間..iPhone-SDK、複数のビュー間でデータを共有する

単一tabBarControllerトグルを以下の例を取る(viewController1、viewController2を言うことができます)。

プロパティ 'name'を持つウィジェットと呼ばれるクラスがあります。

私は、テキストフィールドの内容を読み取り、私のウィジェットオブジェクトの '名前'プロパティを設定するコードをview1に持っています。

ウィジェットオブジェクトの 'name'プロパティを読み込んでどこかに表示するコードをview2に入れたいと思っています。

1.私はウィジェットクラスのインスタンスをどこで宣言しますか? tabBarControllerに?

2.もしそうなら、私は他の2つのビューコントローラーでそのインスタンスにどうやってアクセスしますか?

ありがとうございます!

答えて

6

ウィジェットクラスをアプリケーションデリゲートのプロパティとして配置できます。

@interface youAppDelegate : NSObject <UIApplicationDelegate> { 
    Widget *myWidget; 
} 

@property (readonly) Widget *myWidget; 

@end 

次に、アプリケーションのデリゲートのメッセージ "applicationDidFinishLaunching"でインスタンス化します。あなたはそれをやった後は

、あなたはこのようなプロジェクト内のどこからはMyWidgetにアクセスすることができます。

youAppDelegate *ad = (youAppDelegate*)[UIApplication sharedApplication].delegate; 
Widget *w = [ad myWidget]; 

そのコードが完全にコンパイルすることができ、viewController1、viewController2で、あるいはtabBarController上で実行します。

+0

私にとってはうまくいきませんでした:( 私のアプリがクラッシュしました –

+0

は完璧です!ありがとうございます。 – konradowy

関連する問題