0

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

如果 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"); 

            }
        }
}

感谢阅读和评论。

4

1 回答 1

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");

        }
    }
}
于 2012-07-27T00:47:32.117 回答