在我的iPhone应用中,我有一个NSObject
A类和一个UIViewController
B类。我想从A调用B类中的实例方法。我使用以下代码。
Bclass *vc = [[Bclass alloc]init];
[vc hideAlert:NSString];
[vc release];
和B班:
- (void)hideAlert:(NSString*)message{
UIAlertView *shareAlrt = [[UIAlertView alloc] initWithTitle:@""
message:message
delegate:self
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[shareAlrt show];
[shareAlrt release];
}
并调用该方法并显示AlertView。单击“确定”按钮时,我想导航到类Cclass。
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 0)
{
Cclass *vc = [[Cclass alloc]initWithNibName:@"Cclass" bundle:[NSBundle mainBundle]];
[self presentModalViewController:vc animated:NO];
[vc release];
}
}
但是当我点击“确定”按钮时,应用程序崩溃了。这里发生了什么事?我在B class.h文件中添加了<UIAlertViewDelegate>
,但仍然是同样的错误。请帮忙
我收到错误代码*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFType alertView:clickedButtonAtIndex:]: unrecognized selector sent to instance 0x81baa80'
答案 0 :(得分:0)
只需更改方法
即可- (void)hideAlert:(NSString*)message{
UIAlertView *shareAlrt = [[UIAlertView alloc] initWithTitle:@""
message:message
delegate:self
cancelButtonTitle:nil
otherButtonTitles:@"Ok",nil];
[shareAlrt show];
[shareAlrt release];
}
答案 1 :(得分:-1)
这可以通过假设除了取消按钮标题为“OK”之外没有其他按钮来回答。通过查看显示的代码来进行假设。
您已使用取消按钮,您无法处理委托以执行任何操作。
如果您查看 UIAlertViewDelegate类参考文档
的文档或者,您可以实现alertViewCancel:方法来获取 系统取消警报视图时的适当操作。如果 delegate没有实现此方法,默认行为是 模拟用户单击取消按钮并关闭视图。