一.实现功能:重复点击tabBar,刷新当前TableView,其余不受影响

  <1>实现思路:

  • 错误的方法:

  TabBar成为自己的代理,监听自己的点击--这种方法是不可取的,如果外面设置了代理会覆盖里面的

  • 正确的方法:

    • 既然没有合适的控制器来监听TabBar的点击,就让AppDelegate来做代理,接收到点击事件后,通过通知中心发送通知. -- 注意:发送通知,userInfo将要传递的字典参数,项目里面就一个TabBarVC,可以通过它来获取当前点击的控制器,所以没有传递参数.
    • 哪个控制器需要,就监听发出的通知. -- 发出的通知字符串常量,最好在外界定义好 -- 项目中重复点击需要刷新对应的帖子控制器,所以在帖子控制器中监听发出的通知,接收到通知后直接条用刷新的方法. --注意:记录上次选中的控制器,判断本次点击是否与上次一样,并且为显示在当前的控制器

二.状态栏点击,让显示在当前的TableView回到顶部. -- 实现思路:在APPDelegate中,程序启动之前创建一个窗口,高度20,添加点击的手势,手势事件中递归遍历当前窗口所有子控件,满足是UIScrollView或其子类的空间并且显示在当前,让该scrollView回到顶部.

  • 注意,自从iOS9之后直接添加窗口,没有给窗口添加跟控制器会报错.添加了跟控制器后,UI界面会混乱.问题暂未解决!!!!!!!!!!!!!!!!!!!
  • 问题找到解决方案:在添加topWindow的时候,延迟一段时间再将其添加顶部,我有种蛋蛋的忧伤啊!!
 #import "XMGTopWindow.h"

 @implementation XMGTopWindow

 static UIWindow *window_;

 + (void)initialize
{
window_ = [[UIWindow alloc] init];
window_.frame = CGRectMake(, , XMGScreenW, );
window_.windowLevel = UIWindowLevelAlert;
[window_ addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(windowClick)]];
} + (void)show
{
window_.hidden = NO;
} + (void)hide
{
window_.hidden = YES;
} /**
* 监听窗口点击
*/
+ (void)windowClick
{
UIWindow *window = [UIApplication sharedApplication].keyWindow;
[self searchScrollViewInView:window];
} + (void)searchScrollViewInView:(UIView *)superview
{
for (UIScrollView *subview in superview.subviews) {
// 如果是scrollview, 滚动最顶部
if ([subview isKindOfClass:[UIScrollView class]] && subview.isShowingOnKeyWindow) {
CGPoint offset = subview.contentOffset;
offset.y = - subview.contentInset.top;
[subview setContentOffset:offset animated:YES];
} // 继续查找子控件
[self searchScrollViewInView:subview];
}
}
@end

iOS不得姐项目--TabBar的重复点击实现当前模块刷新;状态栏点击实现当前模块回滚到最顶部的更多相关文章

  1. iOS不得姐项目--推荐关注模块(一个控制器控制两个tableView),数据重复请求的问题,分页数据的加载,上拉下拉刷新(MJRefresh)

    一.推荐关注模块(一个控制器控制两个tableView) -- 数据的显示 刚开始加载数据值得注意的有以下几点 导航控制器会自动调整scrollView的contentInset,最好是取消系统的设置 ...

  2. iOS不得姐项目--appearance的妙用,再一次设置导航栏返回按钮,导航栏左右按钮的封装(巧用分类)

    一.UI_APPEARANCE_SELECTOR 彩票项目中appearance的用法一直没有搞明白,这次通过第二个项目中老师的讲解,更深一层次的了解到了很多关于appearance的作用以及使用方法 ...

  3. iOS不得姐项目--pop框架的初次使用

    一.pop和Core Animation的区别 1.Core Animation的动画只能添加到layer上 2.pop的动画能添加到任何对象 3.pop的底层并非基于Core Animation,是 ...

  4. iOS不得姐项目--精华模块上拉下拉的注意事项,日期显示,重构子控制器,计算cell的高度(只计算一次),图片帖子的显示

    一.上拉下拉注意事项 使用MJRefresh中的上拉控件自动设置透明 当请求下页数据通过page的时候,注意的是上拉加载更多数据失败的问题,下拉加载数据失败了,页数应该还原.或者是请求成功的时候再将页 ...

  5. iOS不得姐项目--封装状态栏指示器(UIWindow实现)

    一.头文件 #import <UIKit/UIKit.h> @interface ChaosStatusBarHUD : NSObject /** 显示成功信息 */ + (void)sh ...

  6. iOS不得姐项目--图片帖子模块,大图默认显示最顶部分的处理

    一.刚开始的处理,设置Mode属性(self.pictureImageView.contentMode = UIViewContentModeScaleAspectFill;) 和 Clip Subv ...

  7. iOS不得姐项目--登录模块的布局,设置文本框占位文字颜色,自定义内部控件竖直排列的按钮

    一.登录模块的布局 将一整部分切割成若干部分来完成,如图分成了三部分来完成 设置顶部状态栏为白色的方法 二.设置文本框占位文字颜色 <1>方法一与方法二实现原理是同一种,都是通过设置pla ...

  8. 视频云SDK iOS持续集成项目实践

    1. 前言 2016年, 我们维护的 iOS推流播放融合SDK KSYLive_iOS 在github上发布了40多个版本, 平均两周发布一个新版本, 经历了最初痛苦的全手动版本构建和维护, 到后来慢 ...

  9. 《转》iOS 平台 Cocos2d-x 项目接入新浪微博 SDK 的坑

    最近在做一个 iOS 的 cocos2d-x 项目接入新浪微博 SDK 的时候被“坑”了,最后终于顺利的解决了.发现网上也有不少人遇到一样的问题,但是能找到的数量有限的解决办法写得都不详细,很难让人理 ...

随机推荐

  1. 续评《遇到一位ITer,一位出租车司机,必看》

    链接:<遇到一位ITer,一位出租车司机,必看> 续评:       我算不上严格意义上的共产主义者,但是算是坚定的共富主义者,切忌不能理解为平均主义者.就是说你开个大奔,我最起码也得能开 ...

  2. Sql动态添加字段的正确姿势

    如何给指定表动态添加字段? 一.创建一张表[Tbl_AutoFileds] (tableName表名,fieldName字段名,dataType数据类型,length长度  isnull 是否允许为n ...

  3. opencv直线检测在c#、Android和ios下的实现方法

    opencv直线检测在c#.Android和ios下的实现方法 本文为作者原创,未经允许,不得转载 :原文由作者发表在博客园:http://www.cnblogs.com/panxiaochun/p/ ...

  4. 石子合并[DP-N3]

    题目描述 在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分. 试设计出1个算法,计算出将N堆石子合并成1 ...

  5. JS读取写入删除COOKIE的各种操作

    1. .NET后置代码中获取 Response.Redirect("http://www.baidu.com?id=" +Request.Cookies["size&qu ...

  6. TextView和EditText中的setFilters方法说明

    在TextView中有一个方法public void setFilters(InputFilter[] filters),API中有一句说明:Sets the list of input filter ...

  7. java(搜索不区分大小写)

    ref.put("myfield", Pattern.compile(".*myValue.*" , Pattern.CASE_INSENSITIVE));

  8. HTML DOM 元素对象

    HTML DOM 元素对象 HTML DOM 节点 在 HTML DOM (Document Object Model) 中, 每个东西都是 节点 : 文档本身就是一个文档对象 所有 HTML 元素都 ...

  9. redis-cache中的callback

    这个是mybatis/redis-cache中关键类  RedisCache  的源码 /** * Copyright 2015 the original author or authors. * * ...

  10. 【MVC】AJAX+PartialView实现商城首页的楼层加载

    使用AJAX实现楼层加载的例子已经非常多,但是html代码大都是手动拼接的,编写不便,而且难以维护. 下面就使用AJAX+PartialView来实现 1.html代码 <!--楼层1开始--& ...