Как запустить представление на основе TTTableView с TTLauncherView? - PullRequest
1 голос
/ 14 октября 2010

Я очень новичок с Three20.Я пытаюсь сделать интерфейс на основе TTLauncherView, но пока безуспешно.

Мой LauncherView содержит кнопку, сопоставленную с URL.Когда я нажимаю на эту кнопку, я хочу, чтобы на экране отображалось основанное на TTTableView.Но у меня ничего нет.

Вот фрагмент моего кода AppDelegate:

[map from:@"tt://rank" toViewController:[RankController class]];

И код LauncherView (тоже кусок):

launcherView.pages = [NSArray arrayWithObjects:
                      [NSArray arrayWithObjects:
                       [[[TTLauncherItem alloc]    
                         initWithTitle:@"Rank"
                         image:@"bundle://defaultMusic.png"
                         URL:@"tt://rank"
                         canDelete:YES] autorelease],nil], nil];

Кнопка здесь, нет проблем.Но при щелчке он никогда не открывает мой класс RankController.Вот его источник:

    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
    {
        if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])
        {
            self.title = @"Rank";
            self.variableHeightRows = YES;
        }

        return self;
    }

- (void)dealloc
{
    [super dealloc];
}

- (void) createModel
{
    NSLog(@"rank");
    self.dataSource = [TTSectionedDataSource dataSourceWithObjects:
                       @"Items",
                       [TTTableTextItem itemWithText:@"Item n°1" URL:nil],
                       [TTTableTextItem itemWithText:@"Item n°2" URL:nil],
                       [TTTableTextItem itemWithText:@"Item n°3" URL:nil],
                       [TTTableTextItem itemWithText:@"Item n°4" URL:nil],
                       [TTTableTextItem itemWithText:@"Item n°5" URL:nil],
                       nil];

}

Я пытался действовать так же, как примеры, упакованные в Three20, так что я делаю не так?

Заранее спасибо

1 Ответ

1 голос
/ 14 октября 2010

Вам необходимо реализовать TTLauncherViewDelegate.В вашем файле .h объявите контроллер представления для реализации TTLauncherViewDelegate:

@interface SFLauncherViewController : TTViewController <TTLauncherViewDelegate>

Затем в файле .m реализуйте этот метод:

- (void)launcherView:(TTLauncherView *)launcher didSelectItem:(TTLauncherItem *)item{
    NSLog(@"did select item: %@", [item URL]);
    TTNavigator *navigator = [TTNavigator navigator];

    TTURLAction *action = [[TTURLAction actionWithURLPath:[item URL]] applyAnimated:YES];

    [navigator openURLAction:action];
}
...