Кнопки UIActionSheet для отображения вида - PullRequest
0 голосов
/ 10 марта 2012

Я пытаюсь заставить кнопки в моем UIActionSheet выполнить изменение представления, используя следующий код.

-(void)displayActionSheet:(id)sender
    {

actionSheet = [[UIActionSheet alloc] 
                              initWithTitle:nil
                              delegate:nil
                              cancelButtonTitle:@"Cancel"
                              destructiveButtonTitle:nil
                              otherButtonTitles:@"Devanagari", @"English", nil];

actionSheet.actionSheetStyle = UIActionSheetStyleBlackOpaque;

[actionSheet showInView:self.view ];

[actionSheet release];

}

Как я могу изменить этот код, чтобы кнопки «Деванагари» и «Английский» ссылались на свои собственные отдельные представления?

Ответы [ 2 ]

2 голосов
/ 10 марта 2012
-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
    NSString *title = [actionSheet buttonTitleAtIndex:buttonIndex];
    if([title isEqualToString:@"Devanagari"]) {
        //Code if Devanagari button is pressed
    }
    if([title isEqualToString:@"English"]) {
        //Code if English button is pressed
    }
}
1 голос
/ 10 марта 2012

ради того, чтобы сделать это менее запутанным, вы можете рассмотреть возможность присвоения вашей actionSheet названия, отличного от actionSheet.

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
    if(actionSheet == actionSheet)
        {

switch (buttonIndex)
            {
                case 0:
                {
            DevanagariViewController *controller1 = [[DevanagariViewController alloc] initWithNibName:@"DevanagariViewController" bundle:nil];
[self presentModalViewController:controller1 animated:NO];
                NSLog(@"DevanagariViewController");
                break;
                }


                case 1:
                {
                            EnglishViewController *controller2 = [[EnglishViewController alloc] initWithNibName:@"EnglishViewController" bundle:nil];
[self presentModalViewController:controller2 animated:NO];
                NSLog(@"EnglishViewController");
                break;
                }


            }   


        }
...