0

私は RSS アプリに取り組んでおり、最後のビュー (tableView) で、cell.detailTextlabel を使用して WebViewController を呼び出し、関連記事を Safari で開きたいと考えています。

実際、これが最善の方法かどうかはわかりませんが、記事全体を開くには、この「続きを読む」が必要です。

3 番目のセクション (添付画像) の最後に、「Read More」を挿入しました - detailTextLabel.text = @"Read More" - しかし、WebViewController にリンクして正しい URL を渡す方法がわかりません。

ネットで検索すると、この例がSafariで開くことがわかりました:

**WebViewController.h** 

#import <UIKit/UIKit.h>

@interface WebViewController : UIViewController

@property (strong, nonatomic) NSString *url;
@property (strong, nonatomic) UIWebView *webView;

- (id)initWithURL:(NSString *)postURL title:(NSString *)postTitle;

@end


**WebViewController.m**

    @implementation WebViewController
    @synthesize url = _url, webView = _webView;

 - (id)initWithURL:(NSString *)postURL title:(NSString *)postTitle
{
    self = [super init];
    if (self) {
        _url = postURL;
        self.title = postTitle;
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.url = [self.url stringByTrimmingCharactersInSet:[NSCharacterSet       whitespaceAndNewlineCharacterSet]];
    NSURL *newURL = [NSURL URLWithString:[self.url  stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

// Do any additional setup after loading the view.
_webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
[self.view addSubview:self.webView];
[self.webView loadRequest:[NSURLRequest requestWithURL:newURL]];
}

- (void)viewDidAppear:(BOOL)animated {
}

 - (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

@end

前もって感謝します。

ここに画像の説明を入力

4

1 に答える 1

0

カスタムUIButtonインスタンスを tableview セルに追加し、構造に従って indexPath.row または indexPath.section でタグ付けできます。ボタン アクションで、送信者のタグを取得し、dataSource 配列から正確な URL を取得して、その URL で WenViewController を呼び出します。セルの contentView に希望のフレームでボタンを追加できます。例えば

CGRect cellFrame = cell.contentView.frame;
UIButton *readMore = [[UIButton alloc] 
                     initWithFrame:CGRectMake(cellFrame.origin.x+20, cellFrame.origin.y+cellFrame.size.height - yourButtonHeight -10, yourButtonWidth, yourButtonHeight)];
[readMore addTarget:self action:@selector(openWebView:) forControlEvents:UIControlEventTouchUpInside];
[readMore setTitle:@"Read More" forState:UIControlStateNormal];
[readMore setTag:indexPath.row];
[cell.contentView addSubview:readMore];
// Release readMore button if not using ARC

そして、メソッドを作ります

-(void)openWebView:(UIButton*)sender{
      int tag = sender.tag;
      // Get URL from array using tag as index
}
于 2013-06-15T04:39:40.077 に答える