2013-11-27 3 views
3

Кто-нибудь знает, как предотвратить отклонение контроллера вида (или выталкивается из стека NavigationController) в результате прокрутки слева направо от крайнего левого края экрана?Как отключить увольнение ViewController при удалении слева направо?

Я загрузил видео, чтобы объяснить, что я имею в виду. Такое поведение наблюдается как в симуляторе, так и в физическом устройстве.

http://youtu.be/fyNEDT140TQ

Причина: Кто будет подписывать экран и, как таковой, начиная с левой стороны экрана вызовет navigationcontroller трещать текущий контроллер представления (т. Е вернуться на экран).

ответ

9

Необходимо использовать приведенный ниже код. Она не поддерживается в IOS 6. Таким образом, вы должны проверить это первый

if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)] && [self checkOSVersion] >= 7) { 
    self.navigationController.interactivePopGestureRecognizer.enabled = NO; 
} 

- (int)checkOSVersion { 

    NSArray *ver = [[[UIDevice currentDevice] systemVersion] componentsSeparatedByString:@"."]; 
    int osVerson = [[ver objectAtIndex:0] intValue]; 
    return osVerson; 
} 
+0

Оценка. Благодарю. –

+0

u приветствуются. пользоваться кодированием – manujmv

1

Жест работает в UINavigationController.interactivePopGestureRecognizer. Вы можете отключить это поведение, установить interactivePopGestureRecognizer.enable к NO

0

Swift 3+

self.navigationController?.interactivePopGestureRecognizer?.isEnabled = false 

вы хотите, чтобы разворачивать его, если вы не знаете, если вид будет иметь навигационный контроллер.

if self.navigationController?.interactivePopGestureRecognizer?.isEnabled != nil { 
    self.navigationController?.interactivePopGestureRecognizer?.isEnabled = false 
    } 
Смежные вопросы