複数のセルを持つナビゲーション コントローラーがあります。各セルを Web ビューの Web ページにリンクしたいと考えています。ただし、セルごとに別のView Controllerを作成したくありません。1 つのビュー コントローラーを作成し、すべてのセルを同じビュー コントローラーにリンクして、各セルの Web ビューに異なる Web ページを表示することは可能ですか? たとえば、セル 1 とセル 2 があります。どちらも、View Controller に Web ビューがある 1 つの View Controller にリンクしています。セル 1 をクリックすると、View Controller が表示され、Web ビューではhttp://example.comに移動します。セル 2 をクリックすると、セル 1 と同じビュー コントローラーに移動しますが、Web ビューではhttp://example.com/1に移動します。どうやってやるの?
1 に答える
0
viewcontroller
リクエストする URL を保持するプロパティを宣言するだけです。
@property (strong,nonatomic) NSString *url;
セルをクリックすると、セルの URL がプロパティに応じて割り当てられます。viewcontroller
ビューコントローラーは次のようになります。
ヘッダ
#import <UIKit/UIKit.h>
@interface RSViewController : UIViewController
@property (weak, nonatomic) NSString *url;
@end
実装
#import "RSViewController.h"
@interface RSViewController ()<UIWebViewDelegate>
@property (strong,nonatomic) IBOutlet UIWebView *webview;
@end
@implementation RSViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.webview.delegate = self;
NSURLRequest *urlRequest = [[NSURLRequest alloc]initWithURL:[NSURL URLWithString:self.url]];
[self.webview loadRequest:urlRequest];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(void)webViewDidStartLoad:(UIWebView *)webView
{
NSLog(@"Did start loading");
}
-(void)webViewDidFinishLoad:(UIWebView *)webView
{
NSLog(@"Did finish loading");
}
@end
これで、セルへの参照が必要になり、セルのクリック時にプロパティを設定するviewcontroller
だけです。tableviewcontroller
url
于 2013-06-14T13:29:42.870 に答える