Last.fmAPI呼び出しから入力されたコンテンツを含むUIWebViewがあります。
このコンテンツにはリンクが含まれており、その多くは次のURLから情報を解析することによって処理されます。
- (BOOL)webView:(UIWebView *)aWbView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
…そしてその情報を適切なビューコントローラに渡します。
URLを処理できない場合は、スタックに新しいView Controllerをプッシュして、そこにあるUIWebViewにWebページをロードしたいと思います。
Three20のTTWebControllerは、ナビゲーションツールバー、読み込みインジケーターなども実装しているため、非常に有望に見えます。
やや素朴なことに、アプリ全体にThree20を実装しなくても、このコントローラーを使用してアプリにWebコンテンツを表示できると思いました。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実装の代わりに使用できる代替のView Controllerテンプレートを知っていますか?