2011-10-15 31 views
0

我创建了一个下载管理器,它几乎是一个TTTableViewController,它附带的DataModel几乎是一个ASINetworkQueue。通过TTURLAction调用View Controller中的方法?

所以,当我在我的视图控制器创建一个函数,轮流打电话给我[数据模型addDownloadWithNameAndUrl:网址:]我得到一个新的下载添加到NetworkQueue,这将启动,并在TTTableViewController正在显示并更新进度条等。

我也将DownloadManagerViewController类映射到一个URL,我可以使用TTNavigator打开下载管理器。

现在我的问题。有没有办法可以调用url来执行请求的功能而不切换到视图控制器?我怎么能做到这一点

回答

0

事实上,它似乎很简单,虽然我花了一段时间才弄清楚。

Thee20导航有方法:

- (id) viewControllerForURL: (NSString *) url; 

使用,在整个应用程序,你可以得到你已经分配给你的网址视图控制器的一个实例。但诀窍是,如果每一次都必须设置URL作为

[map @"url" toViewController: <class>]; 

你得到一个新的实例的视图控制器的

但在我的情况下,我想使用已经实例化的视图控制器,所以我需要将url设置为sharedViewController

所以我添加了一个新的方法到我的视图控制器,现在我可以调用,而无需切换到它的用户界面。

0

你有没有试过看样品/ TTNavigatorDemo项目?它有很多URL映射的例子。

尝试使用[map from:<#(NSString *)#> toObject:<#(id)#> selector:<#(SEL)#>]功能,如:

[map from:@"tt://order/send" toObject:_controller selector:@selector(sendOrder)]; 

如果我发现自己需要的控制器作为对象,我初始化程序委托的对象,而不是,如:

_playerController = [[PlayerController alloc] init]; 
[map from:@"radio://player/(initWithStation:)" toViewController:_playerController transition:UIViewAnimationTransitionNone]; 
相关问题