2011-12-02 49 views
0

我在其中一个程序中使用shouldStartLoadWithRequest非常成功,但整个项目是一个概念证明和肮脏,我重新开始一个新项目。webView shouldStartLoadWithRequest在一个程序中工作,但无法在另一个程序中工作

但是shouldStartLoadWithReqest不再为我调用,但我不能看到两个项目之间的重要区别在哪里(然而,一个不同之处在于第一个是使用.nibs,第二个我不使用它们) 。

得到的东西开始我使用的是控制器与UIWebView中的视图:

@interface IMSRootController : UIViewController <UIWebViewDelegate> { 

    UIWebView* webView; 
} 

(webView的声明为@property和@synthesized)

- (void)loadView { 
    [super loadView]; 
    webView = [[UIWebView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]]; 
    self.view = webView; 
    [webView release]; } 


- (void)viewDidLoad { 
    [super viewDidLoad]; 
    [[self navigationController] setNavigationBarHidden:YES animated:NO]; 
    [self displayPage]; } 

-(void) displayPage { ... [webView loadHTMLString:self.htmlString baseURL:baseURL]; } 


- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 
{ 
... 

有什么不对?

感谢

回答

2

你的对象没有被设置为UIWebView对象的委托,因此您将不会收到任何代表的消息。在某些时候,无论是在loadView甚至displayPage(但调用loadHTMLString:baseURL:之前),这样做:

webView.delegate = self; 
+0

我有类似的问题,我已经设置委托和方法webViewDidFinishLoad和webViewDidStartLoad被称为但是shouldStartLoadWithRequest没有按当我点击一个链接时不会打电话? – Bear

+0

如果你正在调用'webViewDidStartLoad'和'webViewDidFinishLoad',那么你应该**也调用'webView:shouldStartLoadWithRequest:navigationType:'。仔细检查你的委托方法实现是否正确定义(' - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType') – gschandler

+0

这是问题,尽管我的方法被错误地定义从定义复制。我没有想到它可能是如此简单。欢呼声 – Bear

相关问题