2

我研究了以下一些问题,即:

1.)如何在 iphone 中设置选定日期的闹钟?

2.) iPhone 警报使用重复的本地通知

3.)如何在 iPhone 中设置闹钟并保存在本地通知中?

但他们都在使用本地通知。我在本地通知方面遇到问题,因为我必须在警报视图上使用三个按钮,它们是:贪睡、忽略和确定。我必须对每个按钮单击执行自定义操作。

请帮我解决这个问题。

建议接受。

提前致谢。

库尔迪普。

4

1 回答 1

0

在您的应用程序委托中...

- (void) presentWidget: (NSString*)theDisplayedText {
    BOOL widgetIspresent = [WidgetVC widgetIsCurrentlyPresented];

    if (!widgetIspresent) {
        WidgetVC *widgetVC = [[WidgetVC alloc] initWithNibName:@"WidgetVC" userInfoString:theDisplayedText bundle:nil];

        widgetVC.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
        widgetVC.userInfoStr = theDisplayedText;
        [mainScreenManager presentViewController:widgetVC animated:YES completion:nil];
    }
}

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        UILocalNotification *localNotif = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
        if (localNotif) {
            NSLog(@"Recieved Notification  didFinishLaunchingWithOptions %@",localNotif);
            NSString *theDisplaytext = [localNotif.userInfo valueForKey:@"someKey"];
            //here we have to handle whatever notification was pressed - that might also be an old aready passed one
            //this all is checked when the widget opens - it will show if the notification is OK or too old
            [self presentWidget: theDisplaytext ];
        } else {
            //so we started the app normally, not via local notification
            [self presentWidget];

        }

        return YES;
    }


// Handle the notificaton when the app is running
- (void)application:(UIApplication *)app didReceiveLocalNotification:(UILocalNotification *)localNotif {
    // Handle the notificaton when the app is running
    NSLog(@"Recieved Notification didReceiveLocalNotification %@",localNotif);
    NSString *theDisplaytext = [localNotif.userInfo valueForKey:@"someKey"];
    [self presentWidget: theDisplaytext];
}

您需要一种方法来启动小部件的 UIViewController,我刚刚创建了一个 mainScreenManager 助手。

所以在widgetVC上你有你的“Snooze”和“OK”,而“Ignore”只是忽略通知本身。

希望这能让你走上可用的轨道......

ps 我将我的应用程序从 Android 移植到 iPhone,这就是我为这个屏幕使用名称“widgetVC”的原因。在 Android 上,它被实现为一个小部件。希望没有 iPhone 爱好者感到被冒犯 :-)

于 2012-08-22T14:10:37.430 回答