Использование Three20 Navigator для веб-просмотра - PullRequest
0 голосов
/ 22 сентября 2009

Как мне сделать пример кода TTNavigator, чтобы одна из вкладок могла переходить прямо в веб-просмотр или прямо на видео на YouTube и т. Д.? Вот текущий код http://pastie.org/626186

1 Ответ

2 голосов
/ 06 октября 2009

Во-первых, классом, который вы можете использовать для управления отправкой URL-адресов в вашем приложении, является TTURLMap. Вы можете увидеть, как он уже настроен, в файле AppDelegate.m TTNavigatorDemo.

Хитрость в том, что вы можете использовать подстановочные знаки при настройке TTURLMap. Установив подстановочный знак "*" для класса контроллера, вы, по сути, указываете своей TTURLMap отправлять все несопоставленные запросы в новый экземпляр любого класса контроллера, который вы передаете (в вашем случае TTWebController)


TTURLMap* map = navigator.URLMap;
[map from:@"*" toViewController:[TTWebController class]];
[map from:@"tt://someController" toViewController:[SomeController class]];
...
if (![navigator restoreViewControllers]) {
  [navigator openURL:@"tt://someController" animated:NO];
}

Я только что проверил TTNavigatorDemo, и похоже, что это на самом деле уже настроено:


// Any URL that doesn't match will fall back on this one, and open in the web browser
  [map from:@"*" toViewController:[TTWebController class]];

Таким образом, вы должны иметь возможность посещать произвольные URL-адреса уже с помощью контроллера веб-представления, добавляя строку в источник данных, например, так. Нажатие на это должно выдвинуть новый TTWebController с Google:


 [TTTableTextItem itemWithText:@"Google" URL:@"http://google.com"],

Дальнейшее чтение: NavigatorDemo делает действительно классные вещи. Кто-то из группы Google Three20 опубликовал свои заметки, когда распаковывал все, что происходит в настройке TTURLMap .

...