0

これはタブ付きアプリケーションで実行できますが、問題ありませんが、シングルビューアプリケーション(xibを使用)で動作させると、頭がおかしくなります。

新しいクラスWebViewControllerを作成しました。ヘッダーは次のとおりです。

#import <Foundation/Foundation.h>
#import "GHViewController.h"

@interface GHWebViewController : UIViewController <UIWebViewDelegate>
{
    IBOutlet UIWebView *webView;
}

@property (nonatomic, retain) UIWebView *webView;

@end

そして、実装は次のとおりです。

#import "GHWebViewController.h"

@implementation GHWebViewController

@synthesize webView = _webView;

-(void)viewDidLoad
{
    [super viewDidLoad];
    NSString *fullURL=@"http://www.amazon.com/Books-by-Joel-Derfner/lm/RVZNXKV59PL51/ref=cm_lm_byauthor_full";
    NSURL *url = [NSURL URLWithString:fullURL];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
    [webView loadRequest:requestObj];
}

@end

ここまでは順調ですね。ただし、Webビューに移動することは、ユーザーが(バーボタンを介して)使用できるいくつかのオプションの1つにすぎません。そこで、を追加しましたUIWebViewViewController、ユーザーがボタンを押してWebビューに移動するまで非表示にしました。

そして、ここで私は立ち往生しています。私はこれをその代理人にし、それを他のものの代理人にしようとしましたが、何が正しく何が間違っているのかわかりませIBOutletWebViewControllerViewControllerそしてもっと混乱します。に別のxibを追加しようとしましWebViewControllerたが、それが原因で災害が発生しました。私はここで私の深さから外れています。

だから私のマルチパートの質問は:

  1. UIWebViewシングルビューアプリケーションで可能であると説明したように、をいくつかのオプションの1つとして使用していますか?
  2. もしそうなら、それを達成するために私は何をする必要がありますか?a)委任、b)コード、およびc)ユーザーインターフェイスの接続を考えますか?
  3. そうでない場合は、代わりにどのようにタスクに取り組む必要がありますか?

トータルリコールを表示するにはオフにします。多分それは私の頭をクリアするでしょう....

4

1 に答える 1

1

あなたの質問を完全に理解しているかどうかはよくわかりません。3つの質問の前の段落はやや混乱しています...

しかし、いくつかの考え:

  1. インターフェイスでその ivar は必要ありません。特に。IBOutletivar 宣言に含めるべきではありません。が必要な場合は、ivar ではなく宣言IBOutletに含める必要があります。@property

  2. たぶん、あなたは本当に必要ありませんIBOutlet。つまり、webView を xib に配置する必要はありません。(必要に応じてできますが、必要はありません。)

  3. だからIBAction、ボタンで接続するだけです。そのボタンをクリックするとalloc init、webView (およびそのフレームを設定) を作成し、それを に追加してself.view、何かを設定することができますwebview.delegate = self

  4. loadURLその後、通常のように処理できます。そのボタン (または他のボタン) をもう一度クリックすると、ビューから webview が削除されます。

于 2012-08-11T00:29:03.647 に答える