我正在尝试使用WebView。
我做了一个出路:
IBOutlet UIWebView *browser;
将其定义为财产:
@property (nonatomic, retain) IBOutlet UIWebView *browser;
综合它:
@synthesize browser;
最后,我在Interface Builder中连接它,实际上它是。
然后我尝试用它做点什么,即:
[browser loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://apple.com"]]];
或者:
Etape *etape = [[Etape alloc] init];
NSString *html = [etape generateHTMLforEtape:[current_etape objectAtIndex:0]];
[browser loadHTMLString:html baseURL:nil];
[etape release];
我没有错误,我试图构建&分析,没有通知或警告或错误..我一直在寻找一整天,请帮助我:/
非常感谢!
编辑:这是我的WebView连接的屏幕截图: Connections http://pousli.net/uploads/crap/outlet.png
编辑:这就是我调用视图的方式:
DetailViewController *dvController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:[NSBundle mainBundle]];
dvController.workflow_id = parent_id;
Etape *etape = [[Etape alloc] init];
dvController.etapes = [etape getEtapes:parent_id];
[etape release];
[self.navigationController pushViewController:dvController animated:YES];
[dvController release];
答案 0 :(得分:3)
一些想法:
根据您运行此代码的方法,可能还没有连接插座。在调用viewDidLoad
的实现后,开始与您的商店进行互动的最常见地方是viewWillAppear:
,viewDidAppear:
或super
方法。如果您尝试使用init
方法执行此操作,则您的商店可能仍为nil
。在有人请求您的viewcontroller的view
之前,没有加载笔尖并且连接出口。这可能是你正在经历的事情吗?
如果你NSLog(@"%@", browser);
在一个方法中,你知道该视图应该存在,但是记录了(null)
,那么这表明你的网点已经以某种方式丢失了它们的连接。
编辑#1 当您致电initWithNibName:bundle:
时,您确定自己的xib名称拼写正确吗? (顺便说一下,你可以为nil
传递包,它会假设[NSBundle mainBundle]
)
答案 1 :(得分:1)
有一点是你可能已将它连接到@property或IBOutlet(根据我的经验,Interface Builder很容易混淆)。也许尝试声明:
UIWebView *browser_;
@property (nonatomic, retain) IBOutlet UIWebView *browser;
@synthesize browser=browser_;
答案 2 :(得分:1)
这可能是由于你init
视图的方式。如果视图控制器正在代码中加载,那么您需要确保其视图也被加载。
使用init
执行此initWithNibName:bundle:
视图控制器,并确保包含视图的NIB中的“文件所有者”设置为视图控制器的类名。
答案 3 :(得分:1)
一种解释是浏览器未被保留,因为您没有使用“self.attribute”构造来调用执行保留的合成setter。浏览器正在加载笔尖,但是当你开始使用它时,它已被释放。
尝试将“浏览器”切换为“self.browser”并查看是否可以解决问题。
答案 4 :(得分:1)
我以前遇到过这个问题。它看起来很紧密,但事情就是行不通。我不想这么说,但你试过重启Xcode吗? (我之前遇到过这个问题,并且,重启Xcode解决了这个问题。)