Как отправить сообщение обратно в UIScrollView из стека NavigationController? - PullRequest
1 голос
/ 26 октября 2011

Мои контроллеры вида имеют следующую структуру:

> UIWindow 
> - RootViewController with UIScrollView (2 pages, pagingEnabled)
> -- UINavigationController (in the first page of the scrolling view)
> --- HomePageViewController (plus other ViewControllers pushed on the stack)  
> -- MinutiaViewController (second page)

UIScrollView содержит UInavigationController в качестве подпредставления [scrollView addSubview:navController.view];

В моем сценарии я хочу:

  • отключить прокрутку UIScrollView (scrollEnable = NO) после того, как новое представление помещено в UINavigationViewController
  • снова включить UIScrollView (scrollEnable = YES), как только появится новое представление, и UINavigationController снова покажет свой корень (HomePageViewController)

Я понял, как отключить прокрутку scrollView при открытии нового представления.

Но не могу понять, как включить прокрутку scrollView, когда новое представление выскакивает из стека.

Пока я пробовал

1 запуск viewWillAppear; viewWillDisappear; вручную и отправив сообщение для UIScrollView из представления HomePageViewControllerWillAppear например,

    [self.navigationController.parentViewController performSelector:@selector(enableScrollAgain)];  

2 назначил RootViewController как делегат UINavigationController для обработки его События

Кажется, пока что ничего не работает. Все советы приветствуются!

1 Ответ

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

Вы пробовали использовать уведомления?Вы можете добавить RootView для наблюдения за уведомлением от контроллера навигации, когда вы получите это уведомление, вы можете отключить прокрутку.Загляните в NotificationCenter.

Надеюсь, это поможет

...