Диапазон портов RTP, используемый IBM Voice Agent, составляет 1024-65148.
Вы не можете получить к нему доступ напрямую, но вы можете найти следующий контроллер представления (если есть), пройдя по цепочке респондента.
Вот как система Three20 делает это:
- (UIViewController*)viewController
{
for (UIView* next = [self superview]; next; next = next.superview)
{
UIResponder* nextResponder = [next nextResponder];
if ([nextResponder isKindOfClass:[UIViewController class]])
{
return (UIViewController*)nextResponder;
}
}
return nil;
}
Вы можете получить UIviewController из UIView
UIViewController *viewC = (UIViewController *)view->_viewDelegate;
Обратите внимание, что -webView:decidePolicyForNavigationAction:...
является недокументированным методом (во всяком случае, для iPhoneOS. Для Mac OS X он документирован), и приложение, скорее всего, будет отклонено, если оно предназначено для AppStore.
Контроллер представления не связан с представлением. Действует только обратное. Чтобы получить доступ к контроллеру представления, сделайте его глобально доступной переменной или свойством.
Если обычно используется построитель интерфейсов, то можно определить выход в делегат приложения, который соединяется с навигационным контроллером представления. Тогда можно использовать
MyAppDelegate* del = [UIApplication sharedApplication].delegate;
[del.the_navigation_view_controller pushViewController:...];