从UIActionSheet中处理取消按钮的更优雅方式?
问题描述:
我正在使用iOS 5.0应用程序,我想知道是否有更“优雅”的方式来处理点击取消按钮。在文档中似乎没有任何内容,所以我认为答案是“否”。从UIActionSheet中处理取消按钮的更优雅方式?
基本上我有一个UIActionSheet,目前有2个按钮和取消按钮。前两个按钮做他们应该正是基于我的代码做
-(void)actionSheet:(UIActionSheet *)actionsheet clickedButtonAtIndex:(NSInteger)buttonIndex
前两个按钮依赖于某些相同的变数,但是,这取决于被点击,他们瓶坯不同的动作。这些变量在上述方法的switch语句之外被实例化,然后在case内部作用。取消按钮并不依赖任何这些变量(显然),所以为了避免所有的实例化,我把所有这些代码包装在if语句中,以测试Cancel按钮索引。
这并不理想。如果我将新按钮添加到操作表中,我必须记住更新if语句。代码本身看起来总是很混乱。我可以编写一个新的方法来处理前两个按钮的点击逻辑,但是如果有一种方法可以通过取消按钮简单地关闭ActionSheet来阻止clickedButtonAtIndex方法被调用,那么这种方法不会太过分。
所以这是我的问题:有没有办法在没有调用该方法的情况下关闭ActionSheet?
答
嘛,有什么你可以做... 在你所提到的方法,第一件事做到这一点:
if(buttonIndex == actionSheet.cancelButtonIndex)
return;
据我知道这是你能做的最好的。
希望这会有所帮助。
问候,
乔治