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

时间:2012-07-07 21:18:09

标签: ios ios5

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

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

中的代码执行的操作
 -(void)actionSheet:(UIActionSheet *)actionsheet clickedButtonAtIndex:(NSInteger)buttonIndex

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

这不太理想。如果我向Action Sheet添加新按钮,我必须记住更新if语句。代码本身一般看起来很混乱。我可以编写一个新方法来处理前两个按钮的单击逻辑,但是如果有一种方法可以通过取消按钮简单地关闭ActionSheet来阻止clickedButtonAtIndex方法被调用,那么我不想这么做。

所以这是我的问题:有没有办法在不调用该方法的情况下解除ActionSheet?

1 个答案:

答案 0 :(得分:0)

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

if(buttonIndex == actionSheet.cancelButtonIndex)
     return;

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

希望这有帮助。

此致

乔治