0

iPhone初心者です。少し疑問があります。クラス BiblePlayerViewController に 3 つの文字列があり、これらの 3 つの文字列をこのクラスから appdelegate に渡したいと考えています。どうやってするか?

4

4 に答える 4

1

BiblePlayerViewController でプロパティ NSDictionary を作成し、3 つの文字列を辞書に追加して、いつでもどこでもその辞書を読み取ることができるようにします。

NSDictionary *FileDict = [[NSDictionary  alloc] initWithObjectsAndKeys:str1,@"key1",str2,@"key2",str3,@"key3",nil];
于 2012-06-22T05:06:18.640 に答える
0

同様のケースで、appdelegateクラスの共有オブジェクトを使用できると思います。

appdelegateクラスで、グローバルオブジェクトを次のように宣言します。

#define UIAppDelegate ((MyAppDelegateClass *)[UIApplication sharedApplication].delegate)

これを宣言することにより、AppDelegateクラスをインポートする任意のクラスから、AppDelegateクラスのこの共有オブジェクトを使用できます。

次に、AppDelegateで次のように宣言された3つのプロパティがありますか

@interface MyAppDelegateClass : NSObject <UIApplicationDelegate> 
{
   NSString   *string1;
   NSString   *string2;
   NSString   *string3;
}
@property (nonatomic,retain) NSString  string1;
@property (nonatomic,retain) NSString  string2;
@property (nonatomic,retain) NSString  string3;

@end

次に、AppDelegateの実装で

@implementation MyAppDelegateClass

@synthesize string1;
@synthesize string2;
@synthesize string3;

@end

文字列をAppDelegateに送信する必要があるクラスでは、次のように使用します。最初にAppDelegateクラスをインポートする必要があります。

#import "MyAppDelegateClass.h"

@interface MyCustomSenderClass : UIViewController

@end

そして実装では

@implementation MyCustomSenderClass

- (void) sendStringsToAppDelegate
{
   UIAppDelegate.string1 = myString1;
   UIAppDelegate.string2 = myString2;
   UIAppDelegate.string3 = myString3;
}

@end

したがって、AppDelegateクラスをインポートする任意のクラスからAppDelegateに値を直接設定できます。

これはあなたに役立つと思います。

于 2012-06-22T11:35:14.253 に答える
0

NSStringin型の変数を作成するappdelegate.h

NSString *test;

import appdelegate.hinBiblePlayerViewController.m を使用して appdelegate クラスへの参照を取得します

Appdelegate *ad; //init with some object
 //now access the NSString var u just created
 ad.test=@"your string";
于 2012-06-22T05:07:35.743 に答える
0

Appdelegate の静的参照を作成し、NSStrings を Appdelegate のクラス変数として宣言します。

これはappdelegateです

+(Appdelegate*)getAppdelegate{
     return self
}

次に、ビューコントローラーで appdelegate.string1 = string1 などを実行します..これらのオブジェクトを配列にカプセル化し、それらを appdelegate に渡すこともできます。

アイデアは、Appdelegate の静的参照を取得することです。

于 2012-06-22T05:10:53.150 に答える