如何关闭操作表

Posted

技术标签:

【中文标题】如何关闭操作表【英文标题】:how to dismiss action sheet 【发布时间】:2011-04-20 06:36:07 【问题描述】:

我使用此代码在 uiactionsheet 中显示 uipicker,但是当我单击关闭按钮时,我想从视图中删除操作表。那么删除actionSheet表单视图的代码应该是什么。

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField

    UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:nil cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil];

[actionSheet setActionSheetStyle:UIActionSheetStyleBlackTranslucent];

CGRect pickerFrame = CGRectMake(0, 40, 0, 0);

pickerView = [[UIPickerView alloc] initWithFrame:pickerFrame];
pickerView.showsSelectionIndicator = YES;
pickerView.dataSource = self;
pickerView.delegate = self;

[actionSheet addSubview:pickerView];
[pickerView release];

UISegmentedControl *closeButton = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObject:@"Close"]];
closeButton.momentary = YES; 
closeButton.frame = CGRectMake(260, 7.0f, 50.0f, 30.0f);
closeButton.segmentedControlStyle = UISegmentedControlStyleBar;
closeButton.tintColor = [UIColor blackColor];
[closeButton addTarget:self action:@selector(dismissActionSheet:) forControlEvents:UIControlEventValueChanged];
[actionSheet addSubview:closeButton];
[closeButton release];

[actionSheet showInView:self.view];//[UIApplication mainWindow]];

[actionSheet setBounds:CGRectMake(0, 0, 320, 485)];
 return false;

【问题讨论】:

我用过 [actionsheet removeFromSuperview];但它不起作用。 见***.com/questions/1551587/… 【参考方案1】:

您需要做的就是关闭 ActionSheet,您可以使用 dismissWithClickedButtonIndex:animated: 完成此操作

【讨论】:

斯威夫特呢?【参考方案2】:

添加此方法对我有用:

    -(void) dismissActionSheet:(id)sender 
        UIActionSheet *actionSheet =  (UIActionSheet *)[(UIView *)sender superview];
        [actionSheet dismissWithClickedButtonIndex:0 animated:YES];
    

【讨论】:

我的发件人是一个 UIBarButtonItem,它被添加到一个可变数组中,该数组被添加到一个 UIToolBar,它作为子视图添加到操作表中。如何在dismiss方法中访问actionsheet?【参考方案3】:

操作表范围问题。

使用[actionSheet dismissWithClickedButtonIndex:0 animated:YES];

【讨论】:

你在哪里用的?我尝试创建一个dismissActionSheet 方法,并将[actionSheetdismissWith...] 放入其中,但它似乎不起作用。

以上是关于如何关闭操作表的主要内容,如果未能解决你的问题,请参考以下文章

GoldenGate复制单表开并行

如何在一张工作表上运行 2 个 Private Sub Worksheet_Change?

如何将包含数百张工作表的 excel 文件导入数据库以在 C# 项目中使用?

在 VBA 中,我如何创建一个匹配 2 张工作表中的日期并将数据作为值粘贴到匹配日期的代码?不能为此使用 vlookup

我想知道如何运行 vba 脚本来查找和替换仅在一张工作表中而不是整个工作组中的多个单词?

过滤vba后如何只取一些列?