我是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中打包的示例进行操作,那么我做错了什么?
提前致谢
答案 0 :(得分:1)
您需要实现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];
}