1.UIWebView的内容控制的属性/方法列表

loading属性               确认当前页面是否在读入中

canGoForward属性   确认goForward  方法是否可运行,可运行为yes;

canGoBack属性        确认goBack  方法是否可运行,可运行为yes。

goBack方法              
返回前一个页面

goForword方法          进入下一个页面

reload方法                
又一次读入当前页

stopLoading方法       中止当前页的读入

2.webViewController.h

@interface webViewController : UIViewController<UIWebViewDelegate,UINavigationControllerDelegate,UINavigationBarDelegate>
{
UIWebView *_webView;
} @property(nonatomic,strong)UIBarButtonItem *reloadButton;
@property(nonatomic,strong)UIBarButtonItem *stopButton;
@property(nonatomic,strong)UIBarButtonItem *backButton;
@property(nonatomic,strong)UIBarButtonItem *forwardButton;
@end

webViewController.m

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
self.navigationItem.title = @"UIWebView測试版";
_webView = [[UIWebView alloc]init];
_webView.delegate = self;
_webView.frame = self.view.frame;
_webView.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;
_webView.scalesPageToFit = YES;
[self.view addSubview:_webView];
//工具条中追加按钮
_reloadButton = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(reloadDidPush)];
_stopButton = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemStop target:self action: @selector(stopDidPush)];
_backButton = [[UIBarButtonItem alloc]initWithTitle:@"back" style:UIBarButtonItemStyleBordered target:self action:@selector(backDidPush)];
_forwardButton = [[UIBarButtonItem alloc]initWithTitle:@"Forward" style:UIBarButtonItemStyleBordered target:self action:@selector(forwardDidPush)];
NSArray *buttons = [NSArray arrayWithObjects:_backButton,_forwardButton,_reloadButton,_stopButton, nil];
[self setToolbarItems:buttons animated:YES];
[self.navigationController setToolbarHidden:NO animated:YES]; }
-(void)reloadDidPush
{
[_webView reload];//又一次读入页面
}
-(void)stopDidPush
{
if(_webView.loading){
[_webView stopLoading];//读入停止
} }
-(void)backDidPush
{
if (_webView.canGoBack) {
[_webView goBack];//返回前一画面
}
}
-(void)forwardDidPush
{
if (_webView.canGoForward) {
[_webView goForward];//进入下一页面
} } -(void)updateControlEnabled
{
//统一更新指示按钮状态
[UIApplication sharedApplication].networkActivityIndicatorVisible = _webView.loading;
_stopButton.enabled = _webView.loading;
_backButton.enabled = _webView.canGoBack;
_forwardButton.enabled = _webView.canGoForward; }
-(void)viewDidAppear:(BOOL)animated {
//画面显示结果后读入web页面画面
[super viewDidAppear:animated];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.baidu.com"]];
[_webView loadRequest:request];
[self updateControlEnabled];
}
-(void)viewWillDisappear:(BOOL)animated
{
//画面关闭时状态的活动指示器设置成off
[super viewWillDisappear:animated];
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
} -(void)webViewDidStartLoad:(UIWebView *)webView{
[self updateControlEnabled];
} -(void)webViewDidFinishLoad:(UIWebView *)webView {
[self updateControlEnabled];
}
-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
[self updateControlEnabled];
}

UIWebView页面的控制(二)的更多相关文章

  1. Java中的流程控制(二)

    关于Java程序的流程控制(二) 关于Java程序的流程控制(二) 3.switch选择语句 switch语句用于将一个表达式的值同许多其他值比较,并按比较结果选择下面该执行哪些语句. switch( ...

  2. Vue + Element UI 实现权限管理系统 前端篇(十三):页面权限控制

    权限控制方案 既然是后台权限管理系统,当然少不了权限控制啦,至于权限控制,前端方面当然就是对页面资源的访问和操作控制啦. 前端资源权限主要又分为两个部分,即导航菜单的查看权限和页面增删改操作按钮的操作 ...

  3. Vue页面权限控制和动态添加路由

    原文转自:点我 页面权限控制 页面权限控制是什么意思呢? 就是一个网站有不同的角色,比如管理员和普通用户,要求不同的角色能访问的页面是不一样的.如果一个页面,有角色越权访问,这时就得做出限制了. Vu ...

  4. 浅谈HTML5单页面架构(二)——backbone + requirejs + zepto + underscore

    本文转载自:http://www.cnblogs.com/kenkofox/p/4648472.html 上一篇<浅谈HTML5单页面架构(一)--requirejs + angular + a ...

  5. html5 touch事件实现触屏页面上下滑动(二)

    五一小长假哪都没去,睡了三天,今天晕晕沉沉的投入工作了,但还是做出了一点点效果 上周用html5的touch事件把简单的滑动做出来了,实现了持续页面上下滑动的效果,参考之前 的文章及代码html5 t ...

  6. Database(Mysql)发版控制二

    author:skate time:2014/08/18 Database(Mysql)发版控制 The Liquibase Tool related Database 一.Installation ...

  7. 织梦dedecms页面中增加二维码功能的实现方法

    本文介绍了在dedecms中增加二维码功能的实现方法,有时需要在dedecms页面增加二维码,方便手机用户访问,有需要的朋友参考下. 本节内容: dedecms中增加二维码功能   1.打开/incl ...

  8. 【后台管理系统】—— Ant Design Pro页面相关(二)

    一.弹框Modal表单 使用Form.create()包装得到一个含有this.props.form属性的CreatForm自组件 从页面主(父)组件获得props数据和propsMethod方法 r ...

  9. web页面背景色控制

    有一道题要实现输入rgb数值,实现更换页面背景色的功能,如下图所示: 答案: <html> <head> <script type="text/javascri ...

随机推荐

  1. 【记录】mybatis-generator如何使用(maven方式)

    1.首先在pom.xml中添加插件 <plugin> <groupId>org.mybatis.generator</groupId> <artifactId ...

  2. 数据仓库之父——Bill Inmon(转载)

    从此处转载 http://blog.sina.com.cn/s/blog_615f9dba0100f67p.html 比尔·恩门(Bill Inmon),被称为数据仓库之父,最早的数据仓库概念提出者, ...

  3. [APIO2007]风铃 --- 贪心

    [APIO2007]风铃 题目描述 你准备给弟弟 Ike 买一件礼物,但是,Ike 挑选礼物的方式很特别:他只喜欢那些能被他排成有序形状的东西. 你准备给 Ike 买一个风铃.风铃是一种多层的装饰品, ...

  4. 【容斥原理】【推导】【树状数组】Gym - 101485G - Guessing Camels

    题意:给你三个1~n的排列a,b,c,问你在 (i,j)(1<=i<=n,1<=j<=n,i≠j),有多少个有序实数对(i,j)满足在三个排列中,i都在j的前面. 暴力求的话是 ...

  5. JDK源码(1.7) -- java.util.ListIterator<E>

    java.util.ListIterator<E> 源码分析(JDK1.7) ------------------------------------------------------- ...

  6. mysql事件的开启和调用

    检测事件是否开启 show variables like 'event_scheduler'; 开启事件 set global event_scheduler = on; 创建一个存储过程 delim ...

  7. fork新建进程——父进程等待子进程结束

    #include <sys/types.h>#include<sys/wait.h>#include<unistd.h>#include<stdio.h> ...

  8. [转].net reactor 学习系列(三)---.net reactor代码自动操作相关保护功能

    接上篇,上篇已经学习了界面的各种功能以及各种配置,这篇准备学习下代码控制许可证. 代码控制许可证的意思就是软件经过.net reactor保护后,到期时客户端就需要购买许可证,这时软件开发商就需要生成 ...

  9. windows下用Xshell远程登录Linux

    1.下载安装Xshell 2.右击打开终端,输入su ->口令切换到root 3.查看虚拟机IP 输入命令:ifconfig 若提示not found ,输入/sbin/ifconfig (ex ...

  10. pytest文档1-环境准备与入门

    前言 首先说下为什么要学pytest,在此之前相信大家已经掌握了python里面的unittest单元测试框架,那再学一个框架肯定是需要学习时间成本的. 刚开始我的内心是拒绝的,我想我用unittes ...