我是iPhone新手。我有一点怀疑。我在班级圣经PlayerViewController中有三个字符串,我想从这个类将这3个字符串传递给appdelegate。怎么做?
答案 0 :(得分:1)
在BiblePlayerViewController中创建一个属性NSDictionary,并将三个字符串添加到字典中,这样您就可以在任何地方阅读该字典
NSDictionary *FileDict = [[NSDictionary alloc] initWithObjectsAndKeys:str1,@"key1",str2,@"key2",str3,@"key3",nil];
答案 1 :(得分:0)
在NSString
appdelegate.h
类型的变量
NSString *test;
在appdelegate.h
中导入BiblePlayerViewController.m
现在使用
Appdelegate *ad; //init with some object
//now access the NSString var u just created
ad.test=@"your string";
答案 2 :(得分:0)
创建Appdelegate的静态引用并在Appdelegate中将NSStrings声明为类变量
这是appdelegate
+(Appdelegate*)getAppdelegate{
return self
}
然后在你的viewcontroller中 做appdelegate.string1 = string1等等.. 您还可以将这些对象封装在Array中并将它们传递给appdelegate。
我们的想法是获得Appdelegate的静态参考。
答案 3 :(得分:0)
我认为你可以使用appdelegate类的共享对象来处理类似的情况。
appdelegate类中的将全局对象声明为
#define UIAppDelegate ((MyAppDelegateClass *)[UIApplication sharedApplication].delegate)
通过声明这一点,从任何导入AppDelegate类的类都可以使用AppDelegate类的这个共享对象。
然后你在AppDelegate中声明了三个属性为
@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
中@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类。
我认为这有助于你。