我创建了一个下载管理器,它几乎是一个TTTableViewController,它附带的DataModel几乎是一个ASINetworkQueue。
所以,当我在我的视图控制器中创建了一个函数,然后调用我的[dataModel addDownloadWithNameAndUrl:url:]并且我得到一个新的下载添加到NetworkQueue,它开始了,并且正在TTTableViewController上显示更新进度条和其余部分。
我还将DownloadManagerViewController类映射到URL,我可以使用TTNavigator打开下载管理器。
现在提出我的问题。有没有办法可以调用url来执行所请求的功能而无需切换到View Controller?我怎么能完成一些
答案 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的情况下调用它。