如何处理UIAlertView iOS的显示

时间:2015-04-24 23:45:01

标签: ios cocoa-touch

警告出现时UIView会收到任何事件吗?是否存在lostFocus等现有事件?

我知道可以覆盖show的{​​{1}}方法,但我想知道是否有一种方法可以直接从层次结构的顶视图处理它?<​​/ p>

1 个答案:

答案 0 :(得分:2)

我必须这样做,这是一个巨大的痛苦。

将它放在View Controller中。 (自iOS 8发布以来,UIAlertView已被弃用

UIAlertController *someController = [UIAlertController alertControllerWithTitle:@"someTitle" message:@"someMessage" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *someAction = [UIAlertAction actionWithTitle:@"someTitle" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action){
    // your code here for THE ACTION
}];
[someController addAction:someAction];
[self presentViewController:someController animated:YES completion:^{
    // your code here for AFTER THE ALERT PRESENTS
}];

您可以根据需要添加尽可能多的Actions。只需要注意一些注意事项:

  • AlertController style UIAlertControllerStyleAlert如果是Alert Box则为UIAlertControllerStyleActionSheet,如果您需要Action Sheet,则为block { {1}}来自屏幕底部。
  • someAction handler参数的action需要将参数UIAlertAction*作为completion
  • block hanler采用参数,并在提示时称为
  • 当用户点击警告框或操作表中的选项时,系统会调用block UIAlertController

有关UIAlertAction课程或struct IO{ int val; char* name; }; struct Gate{ enum GateType type; struct Gate* next; int numInputs; struct IO* outputs; struct IO* inputs; }; 课程的详情,请参阅Apple文档。

有关Objective-C块的更多信息,请访问fuckingblocksyntax.com或其更适合工作的对象goshdarnblocksyntax.com