以下情况:
在TTTableViewController中,我添加了一些带有URL的单元格。例如,他们正在使用@"tt://photos"开设一个类。这工作得很好。
第一件事是,我在TT示例中看到了一些urls,比如@"tt/photos/1“。是否有可能在我的照片类中获取这个"1“,并说,例如,好的,请打开图片一,或者这只是在TTNavigatior中声明的另一个URL,以打开特定的类?
另一件事是:是否可以将对象转发到链接的类?单击单元格将打开@"tt://photos“(我的TTNavigator中的链接类)
使用普通的表视图,我可以重写我的init方法并用我的initialize方法发送一个对象,这也可以通过单击我的TTItems来实现吗?
谢谢!
发布于 2010-02-24 02:46:05
对于那些需要它的人,我自己想出来了:
优先(在导航器映射中传递"subURLs“)
使用@"tt://photos/firstphoto“导航到一个URL是可能的,你可以像这样获取”第一张照片“:
//Prepare your Navigator Map like this
[map from:@"tt://photos/(initWithNumber:)" toViewController:[PhotoVC class]];在您的PhotoVC中,您可以访问此号码:
-(void) initWithNumber: (NSString*)number {
NSLog(@"%@",number);
}使用此url调用View Controller将如下所示:
PhotoVC* controller = [[PhotoVC alloc] initWithNumber:@"1"];
[navigationController pushViewController:controller animated:YES];
[controller release];Second (在TTTableViewController中传递对象)
这有点棘手,但你不需要继承任何东西。
首先,将TableItem中的URL设为空。
[TTTableLink itemWithText:@"TTTableLink" URL:nil]在你的TTTableViewController中写下这个方法
- (void)didSelectObject:(id)object atIndexPath:(NSIndexPath*)indexPath {
TTURLAction *urlAction = [[[TTURLAction alloc] initWithURLPath:@"tt://photos"] autorelease];
urlAction.query = [NSDictionary dictionaryWithObject:@"firstphoto" forKey:@"photo"];
urlAction.animated = YES;
[[TTNavigator navigator] openURLAction:urlAction];
}现在,在您的PhotoVC中,您需要这样的内容
- (id)initWithNavigatorURL:(NSURL*)URL query:(NSDictionary*)query {
if (self = [super init]) {
NSLog(@"%@",query);
}
return self;
}这样你就完成了;)
发布于 2010-12-31 17:25:55
我试着实现choise的答案,学到了很多,最终不得不让标注显示出来,并用许多urls保持实现的简单性,所以我做了以下工作。
谢谢你的选择!
发布于 2011-05-18 05:08:56
虽然当你在代码中创建TTURLAction时,choice的答案适用于多个参数,但当你想在TTStyledLabel.One中嵌入指向视图控制器的链接时,它就不是很有用了。
<a href='app://view2/param1=value1¶m2=value2&...'>LabelName</a>
如果你想让代码解析这样的urls并获得参数,请随时给我发一条消息,我会把我的解析器类发给你。(或者您可以使用NSScanner构建您自己的!)
另外,不要忘记转义&s,否则TTStyledLabel不会喜欢它的!
https://stackoverflow.com/questions/2317754
复制相似问题