如何在tabbarbutton中点击uiactionsheet后调用segue

时间:2012-07-26 09:24:33

标签: iphone ios xcode uitabbarcontroller uiactionsheet

想知道如何在tabbarbutton中显示动作表后调用segue。

我在app委托中做了所有这些,如果appdelegate不是一个好地方。我应该在哪里添加这些代码行?

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {

    NSInteger choice = 1; // --> index of the view controller that should "act as button"
    if (viewController == [tabBarController.viewControllers objectAtIndex:choice])

        { 
            UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:nil 
                                                               delegate:self
                                                      cancelButtonTitle:@"Cancel" 
                                                 destructiveButtonTitle:Nil 
                                                      otherButtonTitles:@"000", @"Car Accident",@"Home",@"Property", nil];
            sheet.tag = 0;
            sheet.title=@"test";
            NSLog(@"tab tab");
                [sheet showInView:self.window];
                return NO;

    }


    NSLog(@"YES YES");
    return YES;
}


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

            if (buttonIndex == 0)
            {
                UIDevice *device = [UIDevice currentDevice];

                if ([[device model] isEqualToString:@"iPhone"])
                {
                    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt:000"]];

                } else
                {
                    UIAlertView *Notpermitted=[[UIAlertView alloc] initWithTitle:@"Alert" message:@"Your device doesn't support this feature." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
                    [Notpermitted show];
                }


            }
            else if (buttonIndex == 1)
            {
              NSLog(@"Car Accident");
                //tried to call a segue here.

            }
            else if (buttonIndex == 2)
            {

               NSLog(@"YES YES"); 
            }
            else if (buttonIndex == 3)
            {
               NSLog(@"YES YES"); 

            }
        }
}

感谢阅读和评论。

1 个答案:

答案 0 :(得分:1)

- (void)viewDidLoad
{
    [super viewDidLoad];

    AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];

    // Do any additional setup after loading the view.
    UITabBarController *tabController = (UITabBarController *)appDelegate.window.rootViewController;
    tabController.selectedIndex = 0;
    tabController.delegate = self;
}

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {

    NSInteger choice = 1; // --> index of the view controller that should "act as button"
    if (viewController == [tabBarController.viewControllers objectAtIndex:choice])

    {
        UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:nil
                                                           delegate:self
                                                  cancelButtonTitle:@"Cancel"
                                             destructiveButtonTitle:Nil
                                                  otherButtonTitles:@"000", @"Car Accident",@"Home",@"Property", nil];
        sheet.tag = 0;
        sheet.title=@"Emergency";
        NSLog(@"tab tab");

        [sheet showInView:[self.view superview]];
        return NO;

    }


    NSLog(@"YES YES");
    return YES;
}


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

        if (buttonIndex == 0)
        {
            UIDevice *device = [UIDevice currentDevice];

            if ([[device model] isEqualToString:@"iPhone"])
            {
                [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt:000"]];

            } else
            {
                UIAlertView *Notpermitted=[[UIAlertView alloc] initWithTitle:@"Alert" message:@"Your device doesn't support this feature." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
                [Notpermitted show];
            }


        }
        else if (buttonIndex == 1)
        {
            NSLog(@"Car Accident");
            [self performSegueWithIdentifier:@"pushToCarView" sender:self];

        }
        else if (buttonIndex == 2)
        {

            NSLog(@"YES YES");
        }
        else if (buttonIndex == 3)
        {
            NSLog(@"YES YES");

        }
    }
}