У меня проблема. Я использую Three20 и использую TTYoutubeView, эта проблема не обязательно требует знания Three20, я думаю.
Моя проблема в том, что у меня есть пользовательский drawMethod на панели навигации, однако, когда я загружаю видео на YouTube, мне нужно сказать ему игнорировать мой пользовательский метод рисования (это не проблема, у меня есть глобальная BOOL, которая может сделать это).
Моя проблема в том, что я не могу определить, когда загружается видео с YouTube, оно запускается через объект в UIWebview, поэтому не нужно ловить UITouches, и я не хочу создавать подклассы UIWebview, как после YouTube видео было закрыто, у меня тоже нет возможности поймать это.
Что мне требуется, так это метод, который всякий раз, когда рисуется моя панель навигации, спрашивает «Какой класс является текущим viewController», тогда я могу сказать ему, что рисовать, в зависимости от того, что отображается.
NSLog(@"%@",[TTNavigator navigator].topViewController);
NSLog(@"%@",[TTNavigator navigator].visibleViewController);
Я выхожу из окна viewControllers в моем методе рисования, это работает отлично, мой код регистрируется следующим образом
2010-09-08 16:39:23.171 MyApp[3512:307] <HomeController: 0x264df0>
2010-09-08 16:39:23.174 MyApp[3512:307] <HomeController: 0x264df0>
Проблема в том, что при загрузке видео с YouTube, кажется, загружается modalViewController, мой код все еще регистрирует viewController, который находится под этим modalController. Это не говорит мне, что на вершине.
Обнаружение viewController выглядело как яркая искра, когда я об этом думал, и это все еще хорошая идея, насколько я понимаю. Я просто в растерянности относительно того, как я могу узнать, какой вид в настоящее время находится сверху. (поскольку topViewController и visibleViewController, кажется, не слишком точно это делают)