/ / Функцията за обратно преместване на UINavigationContoller не работи, ако изгледът му е добавен към UIViewContoller - iphone, ios7, uinavigationcontroller, плъзнете

Функцията UINavigationContoller не работи, ако нейният изглед е добавен към UIViewContoller - iphone, ios7, uinavigationcontroller, swipe

Имам набор UIViewController (RootViewController)като контролер на корен изглед на UIWindow. Всеки контролер за изглед / изглед се добавя към това подвиждане RootViewController, включително UINavigationController.

Установих, че има ново поведение в iOS7 за UINavigationController, че можете да прекарате пръст обратно към предишния контролер на изглед. Но това не работи за моя случай.

Ако задам UINavigationController като контролер за корен изглед на UIWindow. Работи.

Така че въпросите ми са защо не може да го прекарате назад, ако е добавен към UIViewController ??

Обновено:
Оказва се, че ако навигационната лента е скрита, функцията за прекарване на пръст ще бъде деактивирана ....

Отговори:

1 за отговор № 1

Това вероятно има нещо общо с неправилно настройване на съдържанието на контролера на изгледа. Обзалагам се -viewDidLoad не се извиква на контролерите за изглед на вашия навигационен контролер, когато добавите изгледа на навигационния контролер като подвид към UIWindowrootViewController, Има достатъчно литература за това как правилно да настроите съдържанието на персонализиран контролер на изглед, така че правилните методи да се задействат върху контролерите на изглед:

https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/CreatingCustomContainerViewControllers/CreatingCustomContainerViewControllers.html

Също така, ако Apple използва API за преход за товавъзможно е взаимодействието да има нещо общо с това дали делегатът на навигационния контролер не е свързан правилно (както би станало, когато навигационните контролери са зададени като контролери на root view в UIWindow), или контролерът на родителския изглед краде / скрива жеста , Първо бих погледнал делегата на поп жеста на навигационния контролер и да видя дали не nil:

NSLog(@"%@", self.navigationController.interactivePopGestureRecognizer.delegate);

Ако не е така nil тогава бих проверил дали разпознаващият жест на навигационния контролер може да задейства нормално:

// In the navigation controller"s root view controller, try this:
UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(move)];
[panRecognizer setMaximumNumberOfTouches:1];
[self.view addGestureRecognizer:panRecognizer];


// Then test to see if its working:
- (void)move {
NSLog(@"Hello world.");
}