Привет, я новичок на три20.Я получаю исключение "SettingsViewController setOriginalNavigatorURL нераспознанный селектор отправлен".Как использовать TTLauncherView, если в моем приложении уже есть контроллер навигации?
У меня есть UITableViewController внутри UINavigationController.Я хочу запустить лаунчер, когда в таблице выбрана строка «Настройки».Вот что я сделал:
- (void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
switch ([indexPath row]){
case 0:
[self launchSettings];
break;
// ....
}
-(void)launchSettings
{
TTNavigator* navigator = [TTNavigator navigator];
navigator.persistenceMode = TTNavigatorPersistenceModeAll;
TTURLMap* map = navigator.URLMap;
[map from:@"*" toViewController:[TTWebController class]];
[map from:@"tt://launcher/" toViewController:
[SettingsViewController class]];
if (![navigator restoreViewControllers]) {
[navigator openURLAction:
[TTURLAction actionWithURLPath:@"tt://launcher"]];
}
[self presentModalViewController:[navigator openURLAction:
[TTURLAction actionWithURLPath:@"tt://launcher"]] animated:YES];
}
У меня есть SettingsViewController: UIViewController с loadView, где я создал TTLauncherView и добавил его в качестве подпредставления в SettingsViewController:
- (void)loadView {
[super loadView];
TTLauncherView* launcherView = [[TTLauncherView alloc]
initWithFrame:self.view.bounds];
launcherView.backgroundColor = [UIColor blackColor];
launcherView.columnCount = 4;
launcherView.pages = [NSArray arrayWithObjects:
[NSArray arrayWithObjects:
[self launcherItemWithTitle:@"Google"
image:@"bundle://safari_logo.png"
URL:@"http://google.com"],
[self launcherItemWithTitle:@"Apple"
image:@"bundle://safari_logo.png"
URL:@"http://apple.com"]
, nil]
, nil];
[self.view addSubview:launcherView];
[launcherView release];
}
- (TTLauncherItem *)launcherItemWithTitle:(NSString *)pTitle
image:(NSString *)image URL:(NSString *)url {
TTLauncherItem *launcherItem = [[TTLauncherItem alloc]
initWithTitle:pTitle
image:image
URL:url canDelete:YES];
return [launcherItem autorelease];
}