2010-04-12 52 views
1

我有一個UIWebView,其內容由Last.fm API調用填充。TTWebController的問題... UIWebView的替代視圖控制器模板?

此內容包含鏈接,其中有許多是通過分析信息從URL中處理:

- (BOOL)webView:(UIWebView *)aWbView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType; 

...並傳遞到appropraite視圖控制器該信息。

當我無法處理一個URL,我想在堆棧上推一個新的視圖控制器,並將網頁加載到UIWebView那裏。

的TTWebController在Three20看起來非常有前途,因爲它也實施了導航工具欄,負載指示器等

有點天真,也許我想我將能夠使用該控制器來顯示我的應用程序的Web內容,不在整個應用程序中實施Three20。我跟着GitHub上的說明Three20添加到我的項目,並添加以下代碼來處理的URL在shouldStartLoadWithRequest:

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實現?

+0

我得到一個類似的錯誤,只是它不上TTNavigator通話崩潰:***終止應用程序由於未捕獲的異常'NSInvalidArgumentException',原因:' - [UIView寬度]:無法識別的選擇器發送到實例0x4f86540' – 2011-01-11 20:09:38

回答

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的只是一個簡單的子類

+0

我將不得不嘗試儘快,謝謝你的建議 – prendio2 2010-05-21 15:30:49

+0

我想知道現在看代碼,如果該錯誤是發送NSString到openURL而不是NSURL的結果。我會盡快找到答案。 – prendio2 2010-05-21 15:38:38

+0

錯誤確實是由發送NSString而不是NSURL到openURL:方法造成的......現場學習......謝謝 – prendio2 2010-05-21 16:08:27