Проблема заключается в следующем. У меня есть PageViewController в качестве моего корневого контроллера представления. Инициализация первой страницы с использованием SetViewControllers в блоке ViewDidLoad класса PageViewController работает так же, как и перелистывание страниц вперед и назад с использованием распознавателей жестов страницы. Этот контроллер корневого представления доступен для всего приложения через AppDelegate.
Я хотел добавить возможность возврата на первую страницу из любой точки книги, поэтому создал в своем классе PageViewController открытый метод, который просто вызывал метод SetViewControllers. Хотя это, кажется, работает, я заметил некоторые причуды. Музыка, которая зацикливается в фоновом режиме (опять же, объект AVAudio, объявленный в AppDelegate), перезапускается, и блок ViewDidLoad не запускается, пока страница не будет перевернута снова с использованием распознавателей жестов.
Я пытался сделать то же самое, используя GetNextViewController, но это просто вызывает исключение нулевой ссылки для ссылки PageViewController. Я предполагаю, что есть какие-то отношения между элементами управления, которые я не понимаю, возможно, это связано с источником данных PageViewController. Я попытался делегировать это классу, который переопределяет методы по умолчанию, а также использовать синтаксис Mono this.pageViewController.GetNextViewController = делегат (подпись метода) безрезультатно.
Кто-нибудь знает, в чем заключается моя проблема?
Редактировать: код для AppDelegate.cs можно посмотреть здесь: https://gist.github.com/1747537 и для PageViewController.cs здесь: https://gist.github.com/1747559.