回应Three20 TTStyledTextLabel iphone中的超链接

时间:2011-01-26 03:36:28

标签: iphone three20

我使用Three20源代码来显示我从twitter获得的文本的超链接,到目前为止,我已经设法将“*”URL映射到TTWebViewController类。

[map from:@"*" toViewController:[TTWebController class]];

但是我也希望能够返回到上一个视图(显示Twitter提要的位置),这是在TTTwitter示例项目中完成的,但我不明白它是如何完成的,这一切看起来都很模糊我和我在文档中没有找到任何内容。

我真的不明白为什么他们将每个类映射到一个URL,以及导航器如何知道如何启动和管理不同的类,例如在我的情况下我从来没有控制过TTWebController,因为我可以有一个包装类,它将实例化webController并将其放在UINavigationController中,但我不知道我需要加载的twitter URL;

任何指针都会受到赞赏,如果有人知道一个好的Three20教程会很棒。

1 个答案:

答案 0 :(得分:2)

使用TTNavigator时,我们应该使用TTNavigator创建所有视图控制器。为此,我们应该将所有视图控制器映射到url方案。

首次在应用程序中调用TTNavigator时(在您的情况下通过TTStyledLabel),它会创建一个基本导航控制器。因为您在一个全新的导航控制器中,所以没有看到后退按钮。

因此,您应将Twitter Feed视图控制器映射到网址,并要求TTNavigator在您的应用代理中打开该网址。

您的应用代表中的此类内容应该适合您。

 TTNavigator* navigator = [TTNavigator navigator];
 navigator.persistenceMode = TTNavigatorPersistenceModeNone;

 [self.window makeKeyAndVisible];

 TTURLMap* map = navigator.URLMap;
 [map from:@"*" toViewController:[TTWebController class]];   
 [map from:@"app://feed" toViewController:[TwitterFeedViewController class]];

 if (![[TTNavigator navigator] restoreViewControllers]) {
     TTURLAction* urlAction = [TTURLAction actionWithURLPath:@"app://feed"];
     [TTNavigator navigator] openURLAction:urlAction];
 }