1

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テンプレートを知っていますか?

4

1 に答える 1

0

これは私のために働きます:

NSURL *myURL = [[NSURL alloc] initWithString:@"http://www.google.com"];
MyWebView *webBrowser = [[MyWebView alloc] initWithNavigatorURL:myURL query:nil];
[myURL release];
[self.navigationController pushViewController:webBrowser animated:YES];

ここで、MyWebViewはTTWebControllerの単純なサブクラスです。

于 2010-05-20T12:38:06.240 に答える