重定向警告框按钮

时间:2011-09-12 06:37:13

标签: objective-c event-handling uialertview

我想知道我们是否可以将警报框重定向到特定视图。这意味着当他们点击通知警报上的“查看”时,它会将它们重定向到特定视图,就像弹出的文本消息通知一样。关于它是如何工作的吗?

1 个答案:

答案 0 :(得分:0)

根据您的问题,您可能需要两种类型的警报对话框:

  1. 您提及的通用“提示框”或UIAlertView
  2. 当应用程序在后台时显示的UILocalNotification警告对话框(“就像弹出的短信通知一样”)
  3. 我会按顺序解决它们。


    首先,如何处理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。我已将其与两者的指南联系起来。