0

I am new to iPhone. I have small doubt. I have three strings in class BiblePlayerViewController and I want to pass those 3 strings to appdelegate from this class. How to do that?

4

4 回答 4

1

在 BiblePlayerViewController 中创建一个属性 NSDictionary 并将你的三个字符串添加到字典中,这样你就可以在任何你想要的地方阅读该字典

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

创建类型为NSStringin的变量appdelegate.h

NSString *test;

导入appdelegate.h现在BiblePlayerViewController.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 的静态引用,并在 Appdelegate 中将 NSStrings 声明为类变量

把这是appdelegate

+(Appdelegate*)getAppdelegate{
     return self
}

然后在您的视图控制器中执行 appdelegate.string1 = string1 等等..您还可以将这些对象封装在一个数组中并将它们传递给 appdelegate 。

这个想法是获取 Appdelegate 的静态引用。

于 2012-06-22T05:10:53.150 回答
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 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 回答