Three20:TTLauncherView使用presentModalViewController抛出setOriginalNavigatorURL无法识别的选择器

| 嗨,我是Three20的新手。我收到\“ SettingsViewController setOriginalNavigatorURL无法识别的选择器已发送\”异常。如果我的应用程序中已有导航控制器,如何使用TTLauncherView? 我在UINavigationController中有一个UITableViewController。当在表中选择“设置”行时,我想启动启动器。以下是我所做的:
- (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];
}
我有一个带有loadView的SettingsViewController:UIViewController,在其中创建了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];
}
    
已邀请:
语法错误?
 switch ([indexPath row]){
  case 0:
    launchSettings;  -> [self launchSettings];
    break;
    
-ObjC -all_load在其他编译器标志中丢失。这些是使用three20所必需的。参见http://three20.info/article/2010-10-06-Adding-Three20-To-Your-Project     

要回复问题请先登录注册