通过TTURLAction在View Controller中调用方法?

时间:2011-10-15 10:56:31

标签: iphone ios three20

我创建了一个下载管理器,它几乎是一个TTTableViewController,它附带的DataModel几乎是一个ASINetworkQueue。

所以,当我在我的视图控制器中创建了一个函数,然后调用我的[dataModel addDownloadWithNameAndUrl:url:]并且我得到一个新的下载添加到NetworkQueue,它开始了,并且正在TTTableViewController上显示更新进度条和其余部分。

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

现在提出我的问题。有没有办法可以调用url来执行所请求的功能而无需切换到View Controller?我怎么能完成一些

2 个答案:

答案 0 :(得分: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];

答案 1 :(得分:0)

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

Thee20 Navigator有方法:

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

通过使用它,您可以在整个应用程序中获取已分配给URL的视图控制器实例。但问题是,如果您将网址设置为

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

每次获得View Controller的新实例

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

所以我在我的视图控制器中添加了一个新方法,现在我可以在不切换UI的情况下调用它。