2011-08-08 15 views
0

私は新しいビューにプッシュしようとしており、そのビューのwebviewにURLを送信しようとしていますが、URLリクエストを取得していません。 storyLinkは以前に宣言されていますが、たとえ私がhttp://www.google.comを要求しようとしたとしても、どちらもうまくいきません。なぜなら、何らかの理由でURLを受け入れていないということです。UITableView URLヘルプへのプッシュ

DetailViewController *newviewController=[[[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil]autorelease]; 
      NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:storyLink]]; 
      [newviewController.rssview loadRequest:request]; 
      [self.navigationController pushViewController:newviewController animated:YES]; 

答えて

0

NSURLの次のビューでプロパティを宣言し、親ビューから値を設定するとよいでしょう。例えば

は、...あなたのDetailViewController.mファイルでは、あなたのDetailViewController.hファイルに @synthesize要求を

@interface DetailViewController : UIViewController 
    { 
      NSURL *request; 
    } 
    @property (nonatomic, assign) NSURL *request; 

を次のコードを設定します。

そして...以下のようにあなたのコードを参照する

DetailViewController *newviewController=[[[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil]autorelease]; 
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:storyLink]]; 
    newviewController.request = request; 
    //[newviewController.rssview loadRequest:request]; 
    [self.navigationController pushViewController:newviewController animated:YES]; 

をあなたの現在のコードを変更...:後

はあなたのコードに変更する必要がいくつか欠けているものであり、それは正常に動作するようになります。

  1. UIWebviewコントロールの代理人を設定します。

    self.rssview.delegate = self; 
    [self.rssview loadRequest:self.request]; 
    
  2. 次の行を変更してください。 DetailViewController.mで

    @interface DetailViewController : UIViewController <UIWebViewDelegate> 
    { 
        IBOutlet UIWebView *rssview; 
        NSURLRequest *request; 
    } 
    @property(nonatomic, retain, readonly)UIWebView *rssview; 
    @property (nonatomic, assign) NSURLRequest *request; 
    @end 
    
  3. 下記の通りのUIWebViewのデリゲートメソッドを追加...

    - (BOOL)webView:(UIWebView *)myWebView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 
    { 
        return YES; 
    } 
    
  4. 次のコードを置き換え

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
    { 
        int storyIndex = [indexPath indexAtPosition: [indexPath length] - 1]; 
        NSString * storyLink = [[stories objectAtIndex: storyIndex] objectForKey: @"link"]; 
        // clean up the link - get rid of spaces, returns, and tabs... 
        storyLink = [storyLink stringByReplacingOccurrencesOfString:@" " withString:@""]; 
        storyLink = [storyLink stringByReplacingOccurrencesOfString:@"\n" withString:@""]; 
        storyLink = [storyLink stringByReplacingOccurrencesOfString:@" " withString:@""]; 
        storyLink = [storyLink stringByAddingPercentEscapesUsingEncoding: NSStringEncodingConversionAllowLossy]; 
        NSLog(@"link: %@", storyLink); 
        if(indexPath.row==0) 
        {  
         DetailViewController *newviewController=[[[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil]autorelease]; 
         NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:storyLink]]; 
         //[newviewController.rssview loadRequest:request]; 
         newviewController.request = request; 
         [self.navigationController pushViewController:newviewController animated:YES]; 
        } 
        else 
        { 
         DetailViewController *newviewController=[[[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil]autorelease]; 
         NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:storyLink]]; 
         //[newviewController.rssview loadRequest:request]; 
         newviewController.request = request; 
         [self.navigationController pushViewController:newviewController animated:YES]; 
        } 
    } 
    
+0

にそれは少数の処分しましたエラーはまだUIWebViewに何もロードされていません –

+0

http://dl.dropbox.com/u/24939871/OCVMob ile.zip あなたがそれを見たいのであれば、ここにプロジェクトがあります。誰もそれを理解できないようです。 –

+0

私は答えを編集しました。 –

関連する問題