想知道如何在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");
}
}
}
感谢阅读和评论。
答案 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");
}
}
}