-1

我需要在标签上显示本地通知消息。我知道应用程序运行时如何处理通知的语法。

在我的 AppDelegate.m 上像这样,

- (void)application:(UIApplication *)app didReceiveLocalNotification:(UILocalNotification *)notif {

NSLog(@"Recieved Notification %@",notif);


}

看起来不错,我可以获取日志信息。如何在 AppDelegate 的标签中显示消息?像这样。

- (void)application:(UIApplication *)app didReceiveLocalNotification:(UILocalNotification *)notif {

NSLog(@"Recieved Notification %@",notif);

//Like this concept
MessageLabel.Text = FromNotificationMessage;

}

请帮我。我对iOS编程很感兴趣。怎么做?

4

3 回答 3

0

这取决于您想在哪里显示带有通知消息的标签。如果标签带有任何特定的 UIView 和相应的控制器,则需要在应用程序委托中获取控制器的引用。完成此操作后,您需要通过 Controller -> View -> subview(label) 到达标签。现在您可以在应用程序委托通知接收方法中设置标签文本。

于 2013-08-02T11:29:49.960 回答
0

您可以在其中–application:didReceiveLocalNotification:发布下一个通知,并且作为观察者的每个班级都可以收到它;甚至UIViewController上课。

您的任何UIViewController班级中的 an 都可以将文本放入 aUILabel或您想放入的任何位置。


AppDelegate.m

- (void)application:(UIApplication *)app didReceiveLocalNotification:(UILocalNotification *)note {

    NSString *_stringFromNotification = note.alertBody;
    [[NSNotificationCenter defaultCenter] postNotificationName:@"MyPersonalNotification" object:_stringFromNotification];

}

在您的任何UIVIewController课程中:

- (void)viewDidLoad {
    [super viewDidLoad];

    [[NSNotificationCenter defaultCenter] addObserverForName:@"MyPersonalNotification" object:nil queue:nil usingBlock:^(NSNotification *note) {
        NSString *_string = note.object;
        // ... do whatever you'd like to do with the string
    }];
}

注意:这只是可能的解决方案之一,它非常简单地表达了这个想法。

于 2013-08-02T11:24:03.493 回答
0
- (void)application:(UIApplication *)app didReceiveLocalNotification:(UILocalNotification *)notif {

    NSLog(@"Recieved Notification %@",notif);

    UILabel * MessageLabel = [[UILabel alloc] init];
    MessageLabel.frame = CGRectMake(90, 10, 470, 57);
    MessageLabel.textAlignment = NSTextAlignmentCenter;
    MessageLabel.text = notif; // put your message String here.
    [self.window addSubview: MessageLabel];

}
于 2013-08-02T11:19:50.587 回答