首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >了解TTNavigator

了解TTNavigator
EN

Stack Overflow用户
提问于 2010-02-23 19:42:09
回答 4查看 7K关注 0票数 9

以下情况:

在TTTableViewController中,我添加了一些带有URL的单元格。例如,他们正在使用@"tt://photos"开设一个类。这工作得很好。

第一件事是,我在TT示例中看到了一些urls,比如@"tt/photos/1“。是否有可能在我的照片类中获取这个"1“,并说,例如,好的,请打开图片一,或者这只是在TTNavigatior中声明的另一个URL,以打开特定的类?

另一件事是:是否可以将对象转发到链接的类?单击单元格将打开@"tt://photos“(我的TTNavigator中的链接类)

使用普通的表视图,我可以重写我的init方法并用我的initialize方法发送一个对象,这也可以通过单击我的TTItems来实现吗?

谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-02-24 02:46:05

对于那些需要它的人,我自己想出来了:

优先(在导航器映射中传递"subURLs“)

使用@"tt://photos/firstphoto“导航到一个URL是可能的,你可以像这样获取”第一张照片“:

代码语言:javascript
复制
//Prepare your Navigator Map like this
[map from:@"tt://photos/(initWithNumber:)" toViewController:[PhotoVC class]];

在您的PhotoVC中,您可以访问此号码:

代码语言:javascript
复制
-(void) initWithNumber: (NSString*)number {
    NSLog(@"%@",number);
}

使用此url调用View Controller将如下所示:

代码语言:javascript
复制
PhotoVC* controller = [[PhotoVC alloc] initWithNumber:@"1"];
[navigationController pushViewController:controller animated:YES];
[controller release];

Second (在TTTableViewController中传递对象)

这有点棘手,但你不需要继承任何东西。

首先,将TableItem中的URL设为空。

代码语言:javascript
复制
 [TTTableLink itemWithText:@"TTTableLink" URL:nil]

在你的TTTableViewController中写下这个方法

代码语言:javascript
复制
- (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中,您需要这样的内容

代码语言:javascript
复制
- (id)initWithNavigatorURL:(NSURL*)URL query:(NSDictionary*)query {
     if (self = [super init]) {
              NSLog(@"%@",query);
}

     return self;
}

这样你就完成了;)

票数 21
EN

Stack Overflow用户

发布于 2010-12-31 17:25:55

我试着实现choise的答案,学到了很多,最终不得不让标注显示出来,并用许多urls保持实现的简单性,所以我做了以下工作。

  1. 保留TableItem中的url,
  2. 在用户subclass.
  • (void)didSelectObject:(id)object操作中使用此代码:(NSIndexPath*)indexPath{NSLog(@“其URL为%@",对象URL);TTURLAction *urlAction = [[TTURLAction alloc:(NSString*)对象URL] autorelease];urlAction.query = NSDictionary dictionaryWithObject:self.user forKey:@"user";urlAction.animated = YES;[ }
  1. That导航器openURLAction:TTNavigator];}- (BOOL)shouldOpenURL:(NSString*)URL { return NO;URL "shouldOpenURL:“是通过TTTableViewController发现的,我尝试了一下,它起作用了。现在表格视图没有打开重复的视图,并且有标注!

谢谢你的选择!

票数 3
EN

Stack Overflow用户

发布于 2011-05-18 05:08:56

虽然当你在代码中创建TTURLAction时,choice的答案适用于多个参数,但当你想在TTStyledLabel.One中嵌入指向视图控制器的链接时,它就不是很有用了。

<a href='app://view2/param1=value1&param2=value2&...'>LabelName</a>

如果你想让代码解析这样的urls并获得参数,请随时给我发一条消息,我会把我的解析器类发给你。(或者您可以使用NSScanner构建您自己的!)

另外,不要忘记转义&s,否则TTStyledLabel不会喜欢它的!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2317754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档