相关疑难解决方法(0)

如何使用UIAlertController替换UIActionSheet?

我正在维护一个基于SDK 6.0的旧iOS项目.

这个项目的方法称为

-(void) showComboBox:(UIView*)view:withOptions:(NSDictionary*)options

用于显示组合框.为了实现这一目标,它使用了UIActionSheet,这在iOS8上已弃用.

我的解决方案是这样的:

        if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber10_8) {
        UIAlertController* alertController = [UIAlertController 
           alertControllerWithTitle:@"title" 
           message:@"message" 
           preferredStyle:UIAlertControllerStyleActionSheet];

        UIAlertAction* item = [UIAlertAction actionWithTitle:@"item" 
           style:UIAlertActionStyleDefault 
           handler:^(UIAlertAction *action) {
            //do something here 
            //inform the selection to the WebView 
            ...
            [alertController dismissViewControllerAnimated:YES completion:nil];
        }];

        UIAlertAction* cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
            [alertController dismissViewControllerAnimated:YES completion:nil];
        }];

        [alertController addAction:item];
        [alertController addAction:cancelAction];
        //I am not sure whether it's the right way
        if ([view.nextResponder isKindOfClass:UIViewController.class]) {
            UIViewController* vc = (UIViewController*)view.nextResponder;
            [vc presentViewController:alertController animated:YES completion:nil]; …
Run Code Online (Sandbox Code Playgroud)

objective-c uiactionsheet ios uialertcontroller

51
推荐指数
4
解决办法
5万
查看次数