2

わかりました、それは簡単だと思いますが、誰かが私の間違いを見せてくれるように、私がやっていることすべてを詳細に説明しようとします. Xcode、iOS SDK 6.1、StoryBoard を使用しています。

-MenuViewController (View Controller) にいくつかのボタンがあります。Identity インスペクタで、カスタム クラスを設定しました。すべてのボタンには、MenuViewController.h にアウトレットがあります (Ctrl ドラッグを使用)。すべてのボタンは MenuController.m で合成され、これまでのところ、MenuViewController.m の -viewDidLoad メソッドで背景を設定するだけです。

-別の WebViewController (ナビゲーション バー、バー ボタン、UIWebView を備えたビュー コントローラー) があります。また、その ViewController の新しいクラスを作成し、Identity インスペクターで設定しました。WebView には WebViewController.h にアウトレットがあり、WebViewController.m に合成されています。

-これら2つのViewController間もXcodeを介して接続しました。MenuViewController の 1 つのボタンが WebViewController を開いています (そのボタンを Ctrl キーを押しながら WebViewController にドラッグし、スタイルを Modal に設定することでそれを行いました)。WebViewControllerのNavigationBarのボタンで同じことを行い、クリックするとMenuViewControllerを開く接続を作成しました([戻る]ボタンのようなもの)。

-現在、WebViewController の -viewDidLoad メソッドが呼び出されたときに、その WebView が Web ページを開いています。

私がやりたいことは、MenuViewController で buttonPressed アクションを設定することです。たとえば、1 つのボタンが押された場合、WebViewController に切り替えて特定の URL を開きたいとします。別のボタンが押された場合、同じ WebViewController を開いて、別の URL をロードしたいと考えています。これは難しいことではありませんが、別のクラスから webView のメソッドを呼び出す正しい方法を誰かに教えてもらいたいだけです。私はObjective Cの初心者で、これまでに知っている言語はJavaだけなので、この .h .m と少し混乱しています。どこで何を適切に宣言すればよいかわかりません。また、Objective-C の何かが Java でどのように見えるかを誰かが比較できれば、理解に役立ちます。

ありがとう!

4

1 に答える 1

1

私はストーリーボードを使用せず、次のようなことを行います:

WebViewController .m ファイルで、次のようなメソッドを作成します。

-(id)initWithURL:(NSString *)urlstring
{
    self = [super init];
    receivedURL = [NSURL URLWithString:urlstring];
    return self;
}

そして.hファイルでNSURLのオブジェクトを宣言します

NSURL *receivedURL;

@end のすぐ上

-(id)initWithURL:(NSString *)urlstring;

そして、WebViewControllerのviewDidLoadメソッドで行う

[webview loadRequest:[NSURLRequest requestWithURL:receivedURL]];

ボタンアクションが実行されるたびに、MenuViewController で次のようにします。

WebViewController *webViewObj = [[WebViewController alloc]initWithURL:yourURLString];
[self presentModalViewController:webViewObj animated:YES];
于 2013-03-09T18:21:34.640 に答える