iOS - 未设置标签和图像

时间:2014-07-23 09:11:58

标签: ios iphone objective-c

我正在开发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文件。

你能帮助我吗?

1 个答案:

答案 0 :(得分:0)

已解决:视图未加载,因此属性设置为nil。

我添加了一行代码,以便在设置标签之前“强制”加载我的视图:

[notifyViewController view];