我想知道我们是否可以将警报框重定向到特定视图。这意味着当他们点击通知警报上的“查看”时,它会将它们重定向到特定视图,就像弹出的文本消息通知一样。关于它是如何工作的吗?
答案 0 :(得分:0)
根据您的问题,您可能需要两种类型的警报对话框:
UIAlertView
UILocalNotification
警告对话框(“就像弹出的短信通知一样”)我会按顺序解决它们。
首先,如何处理UIAlertView
“查看”按钮点击。
在您的控制器类中实施UIAlertViewDelegate
协议的alertView:didDismissWithButtonIndex:
方法,当您init
UIAlertView
将其delegate
设置为self
时}。然后当用户点击标记为例如的按钮时“查看”,执行此操作:
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
if([[alertView buttonTitleAtIndex:buttonIndex] isEqualToString:@"View"])
{
// take the user to a specific view
} else { // handle other cases if you have any
}
}
其次,如何处理触发应用程序启动的UILocalNotification
。
关于UILocalNotification
州的Apple文档:
如果通知是警报,并且用户点击操作按钮(或者,如果设备被锁定,则拖动操作滑块),应用程序将启动。在应用程序:didFinishLaunchingWithOptions:方法中,应用程序委托可以使用UIApplicationLaunchOptionsLocalNotificationKey键从传入的选项字典中获取UILocalNotification对象。委托可以检查通知的属性,如果通知在其userInfo字典中包含自定义数据,它可以访问该数据并相应地处理它。
另一方面,如果本地通知仅标记应用程序图标,并且响应中的用户启动应用程序,则调用application:didFinishLaunchingWithOptions:方法,但选项字典中不包含UILocalNotification对象。
您需要使用application:didFinishLaunchingWithOptions:
方法在应用委托类中编写处理此启动案例的代码。
如果您在应用程序运行时碰巧获得UILocalNotification
,Apple文档说明:
如果应用程序在系统发送通知时最重要且可见,则不会显示警报,没有图标标记,也不会播放声音。但是,如果应用程序委托实现它,则调用application:didReceiveLocalNotification :. UILocalNotification实例将传递给此方法,委托可以检查其属性或访问userInfo字典中的任何自定义数据。
编辑:要立即将用户带到特定视图,您可以手动将某些内容推送到UINavigationController
堆栈(如果您的应用通常使用导航控制器操作,则有意义这样做),或present a modal view controller。我已将其与两者的指南联系起来。