прикосновения начали отклонять мнение - PullRequest
2 голосов
/ 30 октября 2011

У меня есть 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 ]

3 голосов
/ 30 октября 2011

Если вы используете панель навигации, я предполагаю, что вы сделали pushViewController для запуска этого контроллера представления?В этом случае вы бы хотели, чтобы

[self.navigationController popViewControllerAnimated:YES];

отклонил контроллер.

0 голосов
/ 30 октября 2011

Вы должны вызывать dismissModalViewControllerAnimated: на родительском контроллере представления, а не на том, который вы хотите скрыть.

Также убедитесь, что для свойства userInteractionEnabled UIImageView установлено значение yes, поскольку в отличие от обычного UIView по умолчанию оно не отвечает на сенсорные события.

0 голосов
/ 30 октября 2011

Конечно, ваше решение предполагает, что представление изображения на самом деле является модальным контроллером представления, представленным где-то presentModalViewController:animated:.

Я бы предложил разместить UIB-кнопку поверх вашего изображения и иметь такой же размер. Подключите его Touch Up Inside к вашему методу возврата, а затем установите его альфа в 0 или скрыть его через IB или свойства. Кнопка не будет отображаться, но она все равно будет получать сенсорные события.

...