如何将数据从AppDelegate传递到ViewController?

时间:2012-12-03 05:18:55

标签: ios uiviewcontroller appdelegate

我正在使用Safari浏览网页。点击此页面上的按钮后,我的Ipad将启动我的应用程序。因此,我在- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url

中实施了AppDelegate.m方法
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{
    if (!url) {  return NO; }   
    NSString *URLString = [url absoluteString];
    self.paramArray = [URLString componentsSeparatedByString:@"@"];
    NSLog(@"%d",[self.paramArray count]);
    for (int i = 1; i < [self.paramArray count]; i++) {
        NSLog([self.paramArray objectAtIndex:i]);
    }
    return YES;
}

我在网页上使用的网址有点像myapp://@first_part@second_part@third_partself.paramArray存储网址的子字符串(myapp:// first_part second_part third_part)。

现在我想在ViewController的文本字段中显示这些字符串。如何将此NSArray传递给ViewController

1 个答案:

答案 0 :(得分:7)

这只是完成它所需的几行代码。

将此行放在appDelegate.h文件中

首先,您需要遵守协议,如下所示

@interface AppDelegate : UIResponder <UIApplicationDelegate>

现在需要为其声明一个属性,如下所示

@property (strong, nonatomic) id<UIApplicationDelegate>delagete;

现在,在视图控制器中使用该属性的最后一个和最后一个阶段如下

在viewcontroller的.h文件中 首先提到像app #import "AppDelegate.h"这样的appdelegate 然后在AppDelegate *appDel;

中将{i}作为@interface

现在在.m文件中 将appDel = [[UIApplication sharedApplication]delegate];置于视图中并执行加载方法并访问appdelegate的所有属性,如appDel.paramArray

快乐编码:)