Прикосновения начали отклонять мнение

У меня есть 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 по умолчанию оно не отвечает на сенсорные события.

Другие вопросы по тегам