[英]Problems with Cancel Button and UIActionSheet
如何確定UIActionSheet上是否按下了取消按鈕?
我的UIActionSheet設置如下:
-(IBAction)fileButtonPressed
{
UIActionSheet *mymenu = [[UIActionSheet alloc]
initWithTitle:@"Select Folder"
delegate:self
cancelButtonTitle:@"Cancel"
destructiveButtonTitle:nil
otherButtonTitles:nil];
for (i=0; i<3; i++)
{
[mymenu addButtonWithTitle:@"Button Name"];
}
[mymenu showInView:self.view];
}
我遇到的問題是我無法區分取消按鈕和所選的第一個按鈕。
-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSString *option = [actionSheet buttonTitleAtIndex:buttonIndex];
//buttonIndex == 0 if the cancel button is pressed or
//if the first item is pressed.
}
有沒有更好的方法來設置它?
訣竅是不使用自動取消按鈕,而是自己添加。
另一個小問題是在結尾而不是在開頭添加取消按鈕。
-(IBAction)fileButtonPressed
{
UIActionSheet *mymenu = [[UIActionSheet alloc]
initWithTitle:@"Select Folder"
delegate:self
cancelButtonTitle:nil
destructiveButtonTitle:nil
otherButtonTitles:nil];
for (int nb=0; nb<3; nb++)
{
[mymenu addButtonWithTitle:@"Button Name"];
}
mymenu.cancelButtonIndex = [mymenu addButtonWithTitle: @"Cancel"];
[mymenu showInView:self.view];
}
歸功於此stackoverflow條目的答案。
if (buttonIndex == actionSheet.cancelButtonIndex)
{
// Handle cancel action
}
UIActionSheet還具有destructiveButtonIndex
和firstOtherButtonIndex
等屬性進行比較。
加上這個
[mymenu showInView:self.parentViewController.tabBarController.view];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.