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

到现在为止还挺好。但是进入网络视图只是用户可用的几个选项之一(通过条形按钮)。所以我添加了一个UIWebViewViewController隐藏它,直到用户按下按钮进入网络视图。

这就是我卡住的地方。我试过让这个代表那个,那个代表另一个,我不知道什么是对的,什么是错的,并且IBOutletinWebViewController不会连接到我的任何东西,我ViewController只是得到更多并且更加困惑。我尝试添加另一个xib,WebViewController但这只会导致灾难。我在这里超出了我的深度。

所以我的多部分问题是:

  1. 正如我在单视图应用程序中所描述的那样,是否可以使用 aUIWebView作为多个选项之一?
  2. 如果是这样,我需要做些什么来完成它——考虑 a) 委托、b) 代码和 c) 用户界面中的连接?
  3. 如果没有,我应该如何处理任务?

关闭以查看 Total Recall。也许这会让我头脑清醒......

4

1 回答 1

1

我不太确定我是否完全理解你的问题;您的 3 个问题之前的段落有些令人困惑...

但有些想法:

  1. 您不需要界面中的那个 ivar。特别是。你不应该IBOutlet在你的 ivar 声明中。如果您需要IBOutlet,它应该在您的@property声明中而不是您的 ivar 中。

  2. 也许你真的不需要IBOutlet. 即你不需要把你的webView 放在xib 上。(如果你愿意,你可以,但你不需要。)

  3. 所以你可以IBAction用一个按钮连接起来。单击该按钮时,您可以alloc initwebView (并设置其框架),将其添加到您的self.view, 并设置webview.delegate = self或其他内容。

  4. 然后你可以像平常一样处理loadURL和处理这些东西。当您再次单击该按钮(或其他按钮)时,您只需从视图中删除您的 web 视图。

于 2012-08-11T00:29:03.647 回答