willPresentActionSheet два разных листа действий в одном классе. Как узнать, какой из них представит - PullRequest
0 голосов
/ 23 июня 2011

В моем классе мне нужно иметь 2 разных (или более) листа действий. Все листы идут на willPresentActionSheet. В willPresentActionSheet я делаю такие вещи, как добавление даты. Но как узнать, какой лист действий называется willPresentActionSheet?

РЕДАКТИРОВАТЬ: я создал лист действий, как это:

UIActionSheet *asheet = [[UIActionSheet alloc] 
                         initWithTitle:@"Pick a value" 


                         delegate:self
                         cancelButtonTitle:@"Cancel" 
                         destructiveButtonTitle:nil 
                         otherButtonTitles:@"Select"
                         , nil];

[asheet showInView:[self.view superview]]; 

[asheet setFrame:CGRectMake(0, 117, 320, 383)];
[asheet release];

Ответы [ 2 ]

6 голосов
/ 23 июня 2011

Вы можете установить тег для листов действий и проверить тег в методе willPresentActionSheet:. Просто!

Edit: Установите тег.

actionSheet1.tag = 100;
actionSheet2.tag = 101;

А в willPresentActionSheet: метод.

if (actionSheet.tag == 100) {  
    // actionSheet1 is going to be presented
} else if (actionSheet.tag == 101) {
    // actionSheet2 is going to be presented
} 
1 голос
/ 23 июня 2011

Он передает лист действий в метод ... Так что если у вас есть (объявлено в заголовке) actionView1 и actionView2, то вы можете сделать ...

if([actionSheet isEqual:actionView1]) {
  // do stuff for 1
} else if([actionSheet isEqual:actionView2]) {
  // do stuff for 2
}
...