【问题标题】:Objective-C UIWebView Not appearingObjective-C UIWebView 没有出现
【发布时间】:2015-09-28 17:04:20
【问题描述】:

我正在使用 XCode 7 和 iOS 9,并在我的故事板场景中添加了一个 UIWebView

并做了以下事情:

将它连接到我的头文件并添加 UIWebViewDelegate:

@interface LHPurchaseOrderDetail : UIViewController<UIWebViewDelegate>

@property (strong, nonatomic) IBOutlet UIWebView *viewWeb;

然后在我的 .m 文件中执行此操作:

- (void)viewDidLoad {
        
        [super viewDidLoad];
        
        NSLog(@"WebView : %@",_viewWeb);
        
        [_viewWeb setDelegate:self];
        
        NSString *fullURL = [NSString stringWithFormat:@"http://www.google.com"];
        
        NSURL *url = [NSURL URLWithString:fullURL];
        NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
        [_viewWeb loadRequest:requestObj];
        
    }

NSLog 会返回这个:

WebView : <UIWebView: 0x7a7e85a0; frame = (0 0; 240 128); autoresize = RM+BM; layer = <CALayer: 0x7a7d8d90>>

我有这两种方法:

- (void)webViewDidFinishLoad:(UIWebView *)webViewIn {
        NSLog(@"web view did finish loading");
    }

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
    {
        NSLog(@"Error : %@",error);
    }

错误没有出现在我的日志中,但网页视图确实完成了加载

但是 UIWebView 没有出现。这是在细节视图控制器中,这是我的故事板的一个约束问题,我对约束一无所知,所以你必须具体。我究竟做错了什么?为什么我的 UIWebView 没有出现?

这是我的故事板的图像:

【问题讨论】:

  • 这是一个非常小的网络视图。尝试将其放大并确保它不在任何其他视图后面。
  • 我猜 240x128 不是一个小框架@rmaddy
  • 你确定它没有出现吗?您是否尝试过使用 Debug View Hierarchy 检查它是否真的存在?

标签: ios objective-c uiwebview


【解决方案1】:

您的代码没有任何问题,只是您必须将 http 替换为 https。

这是ios9引入的新东西。

App Transport Security 已阻止明文 HTTP (http://) 资源 加载,因为它不安全。可以通过以下方式配置临时异常 您应用的 Info.plist 文件。

【讨论】:

  • 但 OP 表示没有错误并且已加载。如果 ATS 阻止了 http: URL,则会出现错误。
  • 你是对的。我错过了 OP 关于“这是我的故事板的约束问题”的说法。但是在 iOS 9 中没有办法在不改变 plist 的情况下加载 http 连接!!!!由于 OP 没有提及任何关于 ATS 的内容,我认为 OP 可能错过了它。
  • 你的view除了webview还有其他view吗?
  • @Mr.T 我用故事板场景的图像更新了我的问题
  • 尝试更改 webveiw 背景颜色,看看是否存在
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-21
  • 2010-09-19
相关资源
最近更新 更多