隐藏/删除UIAlertView时调用的通知或委托

时间:2014-04-05 19:59:45

标签: ios uialertview nsnotificationcenter nsnotifications uialertviewdelegate

我正在尝试查找隐藏或显示警报视图时调用的委托/协议甚至通知。这些事件会触发我可以收听的通知或回叫吗?

我知道UIAlertView协议,但这不是我想要的,我正在寻找实际显示并隐藏事件以在完成后执行操作。

这是否存在?

2 个答案:

答案 0 :(得分:1)

如果您想了解自己已经展示过的AlertView,那么您正在寻找UIAlertViewDelegate协议

didPresentAlertView:alertView:didDismissWithButtonIndex:

如果您想知道操作系统何时显示AlertView,您可以在UIWindow class reference中尝试UIWindowDidBecomeVisibleNotificationUIWindowDidBecomeHiddenNotification,然后检查windowLevel属性等于UIWindowLevelAlert

答案 1 :(得分:0)

检查NSNotifications的简便方法是将该代码添加到 AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notification:) name    :nil object:nil];

    return YES;
}

-(void)notification:(NSNotification*)notification
{
    NSLog(@"Notification name is %@, \n sent by %@\n\n",[notification name], [[notification object] description] );
}

我测试了此代码触发UIAlertViews,但我从未收到与此相关的NSNotification 所以可能没有NSNotificationUIAlertViews相关。