Objective c 在单视图应用程序中被UIWebView困扰

Objective c 在单视图应用程序中被UIWebView困扰,objective-c,xcode,uiwebview,Objective C,Xcode,Uiwebview,我可以在一个选项卡式应用程序中实现这一点,没问题,但是让它在一个单视图应用程序中工作(使用xib)让我抓狂 我创建了一个新类WebViewController。标题为: #import <Foundation/Foundation.h> #import "GHViewController.h" @interface GHWebViewController : UIViewController <UIWebViewDelegate> { IBOutlet UIWe

我可以在一个选项卡式应用程序中实现这一点,没问题,但是让它在一个单视图应用程序中工作(使用xib)让我抓狂

我创建了一个新类WebViewController。标题为:

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

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

@property (nonatomic, retain) UIWebView *webView;

@end
到目前为止,一切顺利。但转到web视图只是用户可用的几个选项之一(通过工具栏按钮)。因此,我在我的
ViewController
中添加了一个
UIWebView
,但在用户按下按钮转到web视图之前将其隐藏

这就是我被困的地方。我试着让这个成为那个的委托,那个成为另一件事的委托,我分不清什么是对的,什么是错的,
WebViewController
中的
IBOutlet
无法连接到我的
ViewController
中的任何东西,我只是越来越困惑。我尝试为
WebViewController
添加另一个xib,但这只会导致灾难。我在这里太深了

所以我的问题是:

  • 使用
    UIWebView
    作为我所描述的几个选项之一,是否可以使用单视图应用程序
  • 如果是这样的话,我需要做些什么来完成它——考虑用户界面中的a)委托、b)代码和c)连接
  • 如果不是,我应该如何处理该任务

  • 去看看总召回率。也许这会使我头脑清醒……

    我不太确定我是否完全理解你的问题;你3个问题前的段落有些混乱

    但有一些想法:

  • 界面中不需要ivar。特别是,您不应该在ivar声明中包含
    IBOutlet
    。如果您需要
    IBOutlet
    ,它应该在您的
    @属性
    声明中,而不是在您的ivar中

  • 也许你真的不需要一个
    IBOutlet
    。i、 e.您不需要将webView放在xib上。(如果愿意,您可以,但不需要。)

  • 所以你可以用一个按钮连接一个
    iAction
    。单击该按钮后,您可以
    alloc init
    您的webView(并设置其框架),将其添加到您的
    self.view
    ,然后设置
    webView.delegate=self
    或其他内容

  • 然后您可以处理
    loadURL
    和类似普通的东西。再次单击该按钮(或其他按钮)时,您只需从视图中删除webview


  • 根据您的描述,一组可在备选视图之间进行选择的条形按钮听起来确实像是选项卡视图控制器正是您所需要的,或者从另一个角度来看,您是在重新设计它。你为什么决定离开它?这很傻,但是。我更喜欢底部的灰色条而不是黑色条(还有按钮的外观等等),这完全解决了问题!非常感谢。
    #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