未调用 appdelegate 中的 clickedButtonAtIndex
Posted
技术标签:
【中文标题】未调用 appdelegate 中的 clickedButtonAtIndex【英文标题】:clickedButtonAtIndex in appdelegate is not called 【发布时间】:2011-08-11 13:53:25 【问题描述】:我在 MyapplicationAppDelegate.m 文件中使用 2 个按钮“取消”和“确定”调用 UIAlert,警报被调用但点击“取消”或“确定”按钮
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
方法未被调用。
我在 MyapplicationAppDelegate.h 文件中添加了 UIAlertViewDelegate,如下所示
#import UIKit/UIKit.h
@interface MyapplicationAppDelegate: NSObject UIApplicationDelegate,UIAlertViewDelegate
..
我想知道还需要什么。
【问题讨论】:
【参考方案1】:我不确定您在发布问题时是否拼写错误,但您应该在 <.. ..>
内致电代表@interface MyapplicationAppDelegate: NSObject <UIApplicationDelegate,UIAlertViewDelegate> ..
这是 UIAlertView 的示例代码
UIAlertView *myAlertView = [[UIAlertView alloc]initWithTitle:@""message:@"Your message goes here" delegate:self cancelButtonTitle:@"OK"otherButtonTitles:nil];
[myAlertView show];
[myAlertView release];
我不确定 myAlertView.delgate = self 是正确的方法,但我确实使用 initWithTitle 设置委托
【讨论】:
与您的回答中提到的相同,但让我再检查一次。【参考方案2】:对我来说,
#define appDelegate ((AppDelegate*)[UIApplication sharedApplication].delegate)
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:nil
message:@"Say Yes or NO?" delegate:appDelegate
cancelButtonTitle:@"No" otherButtonTitles:@"Yes", nil];
alertView.tag = 1;
[alertView show];
[alertView release];
做这个伎俩!
现在它进入 AppDelegate 文件中的 -(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex;
而不添加,
@interface MyapplicationAppDelegate: NSObject <UIApplicationDelegate,UIAlertViewDelegate> ..
【讨论】:
以上是关于未调用 appdelegate 中的 clickedButtonAtIndex的主要内容,如果未能解决你的问题,请参考以下文章
使用 Firebase 云消息传递 (FCM) 时未调用 AppDelegate 方法
motionBegan:withEvent: 在 iOS 10 的 AppDelegate 中未调用
从小部件打开主机应用程序时未调用 AppDelegate 函数(今日扩展)
Swift 3 / Xcode 8 beta 6 中未调用 UIApplicationShortcutItem 的 AppDelegate 函数
从深层链接启动应用程序时未调用 AppDelegate ContinueUserActivity,应归咎于 Firebase SDK