我有一个 UIWebView,其内容是从 Last.fm API 调用中填充的。
此内容包含链接,其中许多是通过解析来自 URL 的信息来处理的:
- (BOOL)webView:(UIWebView *)aWbView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
…并将该信息传递给适当的视图控制器。
当我无法处理 URL 时,我想在堆栈上推送一个新的视图控制器并将网页加载到那里的 UIWebView 中。
Three20 中的TTWebController看起来很有前途,因为它还实现了导航工具栏、加载指示器等。
也许我天真地认为我可以使用这个控制器在我的应用程序中显示 Web 内容,而无需在整个应用程序中实现 Three20。我按照 github 上的说明将 Three20 添加到我的项目中,并添加了以下代码来处理 shouldStartLoadWithRequest 中的 URL:
TTWebController* browser = [[TTWebController alloc]init];
[browser openURL:@"http://three20.info"]; //initially test with this URL
[self.navigationController pushViewController:browser animated:YES];
但是,这会使我的应用程序崩溃,并发出以下通知:
*** -[TTNavigator setParentViewController:]: unrecognized selector sent to instance 0x3d5db70
我还需要做什么才能在我的应用程序中实现 TTWebController?
或者您知道我可以使用替代的视图控制器模板来代替 Three20 实现吗?