我的应用程序中有一个滑出菜单,其中有一个显示UIActionSheet的按钮。这个滑出菜单只是部分涵盖了您以前所使用的任何视图控制器。
- (void)cameraButtonPushed:(UIButton *)sender
{
UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Create String" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"Take Photo", @"Choose from Library", nil];
[actionSheet showInView:[UIApplication sharedApplication].keyWindow];
//[actionSheet showInView:self.parentViewController.view];
}
正如您所看到的,我尝试了两种显示操作表的方法,它们看起来都是一样的。
我与操作表按钮有关的问题实际上有效。它显示在父视图控制器(您所在的视图控制器)中,但是如果我按下任何按钮它们就不起作用。
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 0) {
EditVC *newEditVC = [self.storyboard instantiateViewControllerWithIdentifier:@"editVC"];
[editVC setHidesBottomBarWhenPushed:YES];
[self.parentViewController.navigationController pushViewController:newEditVC animated:YES];
//[self.navigationController pushViewController:newEditVC animated:YES];
} else if (buttonIndex == 1) {
EditVC *newEditVC = [self.storyboard instantiateViewControllerWithIdentifier:@"editVC"];
[editVC setHidesBottomBarWhenPushed:YES];
[self.parentViewController.navigationController pushViewController:newEditVC animated:YES];
//[self.navigationController pushViewController:newEditVC animated:YES];
}
}
上述两种方法都在按下按钮的菜单视图控制器中。我放了一些断点来测试它,并调用了动作表委托方法。 if语句工作正常,但新的VC没有按照应有的方式被推送到导航控制器上。它只是在那些线上运行而没有任何反应。我也试过以父视图控制器中也有actionSheet:clickedButtonAtIndex:
方法的方式进行设置,但是没有调用该方法。
我认为这与使用不合适的代表设置actionSheet有关,但我不确定。
如何从一个视图控制器调用此操作表,显示它并在另一个视图控制器中执行操作?我把它出现在正确的VC中,但是这个动作并没有起作用。