更优雅的方式来处理 UIActionSheet 中的取消按钮单击?

Posted

技术标签:

【中文标题】更优雅的方式来处理 UIActionSheet 中的取消按钮单击?【英文标题】:More elegant way to handle the Cancel Button click from a UIActionSheet? 【发布时间】:2012-07-07 21:18:08 【问题描述】:

我正在开发一个 ios 5.0 应用程序,我想知道是否有更“优雅”的方式来处理单击取消按钮。文档中似乎没有任何内容,所以我认为答案是否定的。

基本上我有一个 UIActionSheet,它目前有 2 个按钮和一个取消按钮。根据我在

中的代码,前两个按钮完全按照他们应该做的事情
 -(void)actionSheet:(UIActionSheet *)actionsheet clickedButtonAtIndex:(NSInteger)buttonIndex

前两个按钮依赖于一些相同的变量,但根据点击的不同,它们会执行不同的操作。在上述方法中,这些变量在我的 switch 语句之外实例化,然后在案例内部执行。取消按钮不依赖任何这些变量(显然),因此为了避免所有实例化,我将所有这些代码包装在一个 if 语句中,用于测试取消按钮索引。

这不太理想。如果我向操作表添加新按钮,我必须记住更新 if 语句。代码本身通常看起来很混乱。我可以编写一个新方法来处理前两个按钮的单击逻辑,但如果有一种方法可以通过取消按钮简单地解除 ActionSheet 以防止调用 clickedButtonAtIndex 方法,那么我不想走那么远。

这就是我的问题:有没有办法在不调用该方法的情况下直接关闭 ActionSheet?

【问题讨论】:

【参考方案1】:

嗯,你可以做点什么... 在你提到的方法中,首先要做的是:

if(buttonIndex == actionSheet.cancelButtonIndex)
     return;

据我所知,这是你能做的最好的。

希望这会有所帮助。

问候,

乔治

【讨论】:

以上是关于更优雅的方式来处理 UIActionSheet 中的取消按钮单击?的主要内容,如果未能解决你的问题,请参考以下文章

是否有一种优雅的 Pythonic 方式来计算已处理的数据? [复制]

在 Angular 应用程序中处理过滤值的更优雅的方式

处理 UIActionSheet

Java 更优雅的方式来编写带有图像的 if 语句

更简洁/优雅的方式来连接 fetch() 返回的 JSON 元素

更优雅的 Golang 错误处理