我正在开发iOS应用程序,我遇到了一个奇怪的问题。
应用程序向用户发送本地通知,当他点击它时,我的应用程序以编程方式选择ViewController,设置其标签和图像,然后将其显示给用户。但它根本不起作用!标签和图像未设置。这是我在AppDelegate.m中的代码
- (void) manageLocalNotification:(UILocalNotification *) notification {
[[UIApplication sharedApplication] cancelLocalNotification:notification];
if ([self.theme intValue] == 1) {
ADATheme1ViewController *notifyViewController = [[ADATheme1ViewController alloc] init];
[notifyViewController.titleLabel setText:self.title];
[notifyViewController.bodyLabel setText:self.text];
[notifyViewController.bgImage setImage: [self getImageFromURL:self.background]];
self.window.rootViewController = notifyViewController;
} else {
ADATheme2ViewController *notifyViewController = [[ADATheme2ViewController alloc] init];
[notifyViewController.titleLabel setText:self.title];
[notifyViewController.bodyLabel setText:self.text];
[notifyViewController.offerLabel setText:self.offer];
[notifyViewController.bgImage setImage: [self getImageFromURL:self.background]];
self.window.rootViewController = notifyViewController;
}
}
我进行了一些调试,我的属性(文本,标题,商品等)已正确设置。方法getImageFromUrl:返回一个UIImage *并且它可以工作。 我的ViewControllers非常简单,这里是代码(但没什么特别的)
.h文件 #import
@interface ADATheme1ViewController : UIViewController
@property (strong, nonatomic) IBOutlet UIImageView *bgImage;
@property (strong, nonatomic) IBOutlet UILabel *titleLabel;
@property (strong, nonatomic) IBOutlet UILabel *bodyLabel;
@end
.m文件
#import "ADATheme1ViewController.h"
@interface ADATheme1ViewController ()
@end
@implementation ADATheme1ViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}
@end
并且附加了.xib文件。
你能帮助我吗?
答案 0 :(得分:0)
已解决:视图未加载,因此属性设置为nil。
我添加了一行代码,以便在设置标签之前“强制”加载我的视图:
[notifyViewController view];