视图 UIApplication 之间的数据

Posted

技术标签:

【中文标题】视图 UIApplication 之间的数据【英文标题】:data between Views UIApplication 【发布时间】:2011-03-23 15:31:12 【问题描述】:

我想在视图之间共享数据...

我有tabbar应用的appdelegate:

myappdelegate.h

#import <UIKit/UIKit.h>

@interface myappdelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate> 
    UIWindow *window;
    UITabBarController *tabBarController;
    NSString  *result;



@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;

@property (copy , readwrite) NSString *result;


@end

如果我想用这个命令打电话,有提示:“可能没有响应”....

   myappdelegate *dataCenter = [(myappdelegate *)[UIApplication sharedApplication] delegate];  <<may not respond
   dataCenter.result = @"msg";

result_view *resultView = [[result_view alloc] initWithNibName:@"result_view" bundle:nil];
[self.navigationController pushViewController:resultView animated:YES];
[resultView release];

result_view.m

- (void)viewDidLoad

    myappdelegate *dataCenter = (myappdelegate*)[[UIApplication sharedApplication]delegate];

    [label setText:dataCenter.result];
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.

程序崩溃...

【问题讨论】:

因为该属性被称为result,而不是result_array sry 我刚刚改了... 【参考方案1】:

您的代码说sharedApplication 属于myappdelegate 类,它确实不响应delegate。这样做:

(myappdelegate *)[[UIApplication sharedApplication] delegate];

删除警告。


由于 Objective-C 的运行时消息传递,您当前的(生成警告的)代码不会使应用程序崩溃。崩溃发生在其他地方。

【讨论】:

嗯,没错……!不再有警告,但字符串没有传输...之后我会打开结果视图...:result_view *resultView = [[result_view alloc] initWithNibName:@"result_view" bundle:nil]; [self.navigationController pushViewController:resultView Animation:YES]; [结果查看发布];【参考方案2】:

你的第一行应该是

myappdelegate *dataCenter = (myappdelegate *)[[UIApplication sharedApplication] delegate];

至于第二行,我不知道你期望发生什么。您的 myappdelegate 类上没有 result_array 属性,因此您当然不能设置该属性。

如果你试图设置result 属性,你应该写

dataCenter.result = @"msg";

【讨论】:

以上是关于视图 UIApplication 之间的数据的主要内容,如果未能解决你的问题,请参考以下文章

UIApplication的详细介绍

如何从 UIApplication 切换视图控制器

[UIApplication sharedApplication].keyWindow 添加视图无效,解决方案。

获取对 UIApplication 委托的引用

无法使用核心数据检索数据

UIApplication cancelAllLocalNotifications 如何在应用更新之间工作?