如何将 UIWebView 添加到我的 iOS 应用程序?

2024-03-20

我现在有一个应用程序,当在第一个屏幕上按下按钮时,它会执行一些工作并创建一个 URL,然后执行

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:currentURL]];

它会使用我的 URL 启动 Safari。我想从这里启动一个 webview,这样用户就可以用它做一些自定义的事情。我仍然很难理解 iOS 中的 MVC 并且需要帮助。我的项目很小,由 AppDelegate.h/m 和 ViewController.h/m 组成,视图控制器的 .m 是执行此 Safari 启动的函数所在的位置。

谁能帮助我理解如何做我想做的事情?

谢谢...


最简单的方法是在按下按钮时添加 UIWebView。将此方法添加到您的 ViewController.m 中,并在按下按钮时执行此方法。

以编程方式:

//This method should get called when you want to add and load the web view
- (void)loadUIWebView
{
    UIWebView *webView = [[UIWebView alloc] initWithFrame:self.view.bounds];  //Change self.view.bounds to a smaller CGRect if you don't want it to take up the whole screen
    [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:currentURL]]];
    [self.view addSubview:webView];
    [webView release];
}

使用界面生成器:

1) 将 UIWebView 对象添加到您的界面。

2) 将“隐藏”属性设置为选中(在 Interface Builder 的“属性检查器”窗口中)。您将把它隐藏起来,直到您想显示它为止。

3) 将以下代码添加到 ViewController.h 中其他 @property 行的下方:

@property (nonatomic, retain) IBOutlet UIWebView *webView;

4) 在 ViewController.m 中的 @synthesize 下面添加以下行

@synthesize webView;

And add [webView release];在dealloc方法中。

5)返回IB并单击File's Owner,然后将webView出口连接到您创建的webView。

6) 添加以下方法而不是上面显示的方法(对于编程示例):

//This method should get called when you want to add and load the web view
- (void)loadUIWebView
{
    [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:currentURL]]];
    self.webView.hidden = NO; 
}

您可以设置一个 IBAction 方法来响应按钮按下,但听起来您已经让按钮按下工作了,所以我现在不会为此烦恼。

至于在 Web 视图上方添加按钮,您可以子类化 Web 视图并在其中添加按钮,或者只是在笔尖中或以编程方式定义一个单独的按钮,然后隐藏 webView 以“摆脱它”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 UIWebView 添加到我的 iOS 应用程序? 的相关文章

随机推荐

  • 使用 php://memory 包装器会导致错误

    我试图通过添加一个方法来扩展 Worx 的 PHP 邮件程序类 该方法允许我使用字符串数据而不是文件路径添加附件 我想出了这样的事情 public function addAttachmentString string name encod
  • Mac OS X - 没有菜单的应用程序?

    我想构建一个没有菜单栏 停靠栏图标或位于应用程序切换器中的应用程序 基本上 它应该像 Quicksilver 一样 我通过全局热键 例如 Safari 激活它 然后会出现一个小窗口 但 Safari 不会变得不活动 也不会显示不同的菜单栏
  • MediaPlayer getDuration 返回 -1412558917

    我完全迷失了 我发现代码非常简单 并且在文档中没有找到任何返回这么大负数的原因 代码如下 private int getDuration String audioPath throws Exception mediaPlayer new M
  • iOS 6.0.1 模拟器

    我已经安装了XCode 4 5 2 它只有 6 0 的模拟器 我想要 iOS 6 0 1 iPad 模拟器 有人可以帮助我如何获得 6 0 1 版本吗 我检查了 mac 应用商店的更新 它是最新的 XCode 如果我安装 Xcode 4 6
  • 如何覆盖 Angular 中的现有组件?

    我正在尝试覆盖角度中的现有组件 我原来的组件是 Component selector app orginal templateUrl orginal component html styleUrls orginal component cs
  • 使用 StructureMap 创建插件扫描器

    我正在尝试为支付网关实现编写一个 StructureMap 插件扫描仪 我在外部库中创建了 IPaymentGateway 接口 我创建了 IPaymentGateway 的多个实现 并将这些 dll 放在我的 C Extensions 文
  • 比较 SSIS 包代码...有什么建议吗?

    我已经遇到了不可避免的情况 我必须对 SSIS 包的两个版本中的代码进行比较 除了我现在要打开 2 个 VS 实例并逐个框 逐个变量地检查它之外 您还成功使用过什么 注意 就我而言 比较重要的事情是 变量 执行SQL任务中的代码 任务顺序
  • 如何将参数从 xaml 标记文件传递到 UserControl 构造函数?

    我有一个 StepsWnd 窗口 其中使用了两次 UserControl StepProp 并在单独的文件中声明
  • Spring boot - 启动时禁用 Liquibase

    我希望有液体碱配置了我的春季启动应用程序 所以我添加了依赖项pom xml并将路径设置为master xml in application properties 这工作正常并且春季启动 runs 液体碱在启动时 问题是现在我想跑液体碱手动
  • Android Studio:导航 xml 编辑和设计视图出现问题

    我们一直在项目中使用导航组件 但偶然发现了一个似乎是我们的项目和 JetBrains Android 插件特有的问题 我无法确定它开始发生的确切时间点 但我在 AS 3 2 发布后注意到了它 该项目构建得很好 但是在编辑导航 XML 时 自
  • 自动装配依赖项注入失败;

    我正在开发一个小型 Java EE Hibernate Spring 应用程序 出现错误 Error creating bean with name articleControleur Injection of autowired depe
  • Select2 onselect一个选项将选择所有其他选项

    我在此提供了选择 2JSFIDDLE https jsfiddle net kLw8rnre 2 我如何选择一个期权呼叫All它将选择该选择字段中除自身之外的所有选项 这意味着All选项更像是 全选 按钮 并取消选择All 将取消选择所有选
  • Log4J SocketAppender 吞下来自远程客户端的调试信息

    我已经配置了一个简单套接字服务器 http logging apache org log4j 1 2 apidocs org apache log4j net SimpleSocketServer html public class Sim
  • Jetpack compose:设置 ImeAction 不会关闭或更改键盘焦点

    我正在使用 Jetpack 撰写1 0 0 alpha07 我制作了一个包含两个的登录屏幕TextField使用其他可组合项进行定制 然而 设置ImeAction in keyboardOptions似乎不起作用 例如ImeAction N
  • 缺少默认参数 - 编译器错误

    void func string word hello int b some jobs in another function calling func 10 当我编译它时 编译器发出错误 default argument missing
  • 访问 ActivityResult 上的公共下载文件 Android 28 Samsung Galaxy S9+ (Verizon)

    UPDATE 我有一台运行 8 0 0 T Mobile 的三星 Galaxy S8 运行正常 8 0 0 我的三星 Galaxy S9 运行 8 0 0 Verizon 每次都会因非法争论而失败 我的三星 Galaxy S9 运行 8 0
  • 更多 Ruby 方式进行 euler 项目 #2

    我正在尝试学习 Ruby 并且正在解决一些 Project Euler 问题 我解决了像这样 def fib n return n if n lt 2 vals 0 1 n times do vals push vals 1 vals 2
  • 正则表达式去除 HTML 标签

    我有这个 HTML 输入 font size 5 p some text p p another text p font 我想使用正则表达式删除 HTML 标签 以便输出为 some text another text 谁能建议如何使用正则
  • 如何在页面刷新之间保留变量的值?

    在下面的代码中我想要的值 dischargeDate刷新页面后的变量 我的问题是在此代码中包含排序代码 并且对于每一列 都会刷新按用户页面排序的点击 并且值 dischargeDat获取 null 并影响输出
  • 如何将 UIWebView 添加到我的 iOS 应用程序?

    我现在有一个应用程序 当在第一个屏幕上按下按钮时 它会执行一些工作并创建一个 URL 然后执行 UIApplication sharedApplication openURL NSURL URLWithString currentURL 它