Прикосновения начали отклонять мнение
У меня есть ViewController с полноэкранным UIImageView. Я скрыл statusBar и NavigationBar, так что нет пути назад, кроме как нажать где-нибудь.
Так что я думал вернуться только с помощью этого прикосновения
- (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?
3 ответа
Если вы используете панель навигации, я предполагаю, что вы сделали pushViewController для запуска этого контроллера представления? В этом случае вы бы хотели
[self.navigationController popViewControllerAnimated:YES];
уволить контролера.
Конечно, ваше решение предполагает, что представление изображения на самом деле является модальным контроллером представления, представленным presentModalViewController:animated:
где-то.
Я бы предложил разместить UIB-кнопку поверх вашего изображения и иметь такой же размер. Подключите его Touch Up Inside к вашему методу возврата, а затем установите его альфа на 0 или скрыть его через IB или свойства. Кнопка не будет отображаться, но она все равно будет получать сенсорные события.
Вы должны вызвать dismissModalViewControllerAnimated: на родительском контроллере представления, а не на том, который вы хотите скрыть.
Также убедитесь, что для свойства userInteractionEnabled UIImageView установлено значение yes, поскольку в отличие от обычного UIView по умолчанию оно не отвечает на сенсорные события.