我有一个带全屏UIImageView的ViewController。我已经隐藏了statusBar和NavigationBar,所以没有办法回去但是在某个地方点击。
所以我想回去使用这个touchesBegan
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[self dismissModalViewControllerAnimated:YES];
}
我也尝试过这种方式
-(void)viewDidLoad
{
[super viewDidLoad];
[[UIApplication sharedApplication] setStatusBarHidden:YES];
[self.navigationController setNavigationBarHidden:YES];
UITapGestureRecognizer *tapRecognizer;
tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissModalViewControllerAnimated:)];
[imageFrame addGestureRecognizer:tapRecognizer];
imageFrame.image = [UIImage imageWithContentsOfFile:image];
[tapRecognizer release];
}
我被困在那里,用这个全屏图像,我不能回去。 我怎样才能解除viewcontroller?
答案 0 :(得分:3)
如果您使用导航栏,我假设您使用了pushViewController来启动此视图控制器?在这种情况下,你会想要
[self.navigationController popViewControllerAnimated:YES];
解雇控制器。
答案 1 :(得分:0)
当然,您的解决方案假设图像视图实际上是一个在某处显示presentModalViewController:animated:
的模态视图控制器。
我的建议是将UIButton放在图像视图的顶部并调整大小。将其Touch Up Inside连接到您的返回方法,然后将其alpha设置为0或通过IB或属性隐藏它。该按钮不会显示,但仍会收到触摸事件。
答案 2 :(得分:0)
你应该在父视图控制器上调用dismissModalViewControllerAnimated:而不是你要隐藏的那个。
还要确保将UIImageView的userInteractionEnabled属性设置为yes,因为与常规UIView不同,默认情况下它不会回答触摸事件。