允许多次使用 presentViewController 来呈现 UIAlertController。
您可能会失望。您想象过会有鸟儿吐出一些带有美丽动画的提示吗?
抱歉。
嗯,可能以后会吧。但现在不会。
这是使用 swizzle 来使 UIAlertController 多次使用 presentViewController 的一些代码。
CuckooAlert.swift
。Swift
import CuckooAlert
in AppDeleaget launching
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
CuckooAlert.registCuckooAlert()
return true
}
in ViewController
var alert = UIAlertController(title: "title", message: "message", preferredStyle: .Alert)
let cancel = UIAlertAction(title: "Cancel", style: .Cancel, handler: nil)
alert.addAction(cancel)
// present first alert controller
self.presentViewController(alert, animated: true, completion: nil)
alert = UIAlertController(title: "title2", message: "message2", preferredStyle: .Alert)
alert.addAction(cancel)
// present second alert controller
self.presentViewController(alert, animated: true, completion: nil)
if let vc = self.storyboard?.instantiateViewControllerWithIdentifier("2") {
// This will be ignored with some Warning:
self.presentViewController(vc, animated: true, completion: nil)
}
alert = UIAlertController(title: "title3", message: "message3", preferredStyle: .Alert)
alert.addAction(cancel)
// present third alert controller
self.presentViewController(alert, animated: true, completion: nil)
ObjC
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[CuckooAlert registCuckooAlert];
return YES;
}
in ViewController
UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil];
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"title" message:@"message" preferredStyle:UIAlertControllerStyleAlert];
[alert addAction:cancel];
// present first alert controller
[alert showWithParentViewController:self animated:true completion:nil];
alert = [UIAlertController alertControllerWithTitle:@"title2" message:@"message2" preferredStyle:UIAlertControllerStyleAlert];
[alert addAction:cancel];
// present second alert controller
[alert showWithParentViewController:self animated:true completion:nil];
// This will be ignored with some Warning:
[self presentViewController:[self.storyboard instantiateViewControllerWithIdentifier:@"2"] animated:YES completion:nil];
alert = [UIAlertController alertControllerWithTitle:@"title3" message:@"message3" preferredStyle:UIAlertControllerStyleAlert];
[alert addAction:cancel];
[alert showWithParentViewController:self animated:true completion:nil];
在 CuckooAlert 项目中查看 Example, ExampleObjc 目标
我非常希望您为 CuckooAlert 做出贡献或修改或复制任何内容,有关更多信息,请查看 LICENSE
文件。
singcodes – @KwanghoonChoi – [email protected]
在 BSD(3-clause) 许可下分发。有关更多信息,请参阅 LICENSE
。