1.监听按钮点击
 
2.判断是否是点击的同一个按钮(记录上次点击的按钮)
 
3.当重复点击相同按钮时,需要获取当前按钮对应控制器刷新界面
     3.1 判断是否重复点击按钮,代码写在哪里?
          点击标题按钮,属于精华控制器的事情,所以找到精华控制器.写在点击按钮方法里面
 
     3.2怎么拿到按钮对应的控制器?
          通过当前按钮的tag值,从精华控制器的子控制器数组中去
     
     3.3怎么让对应的控制器刷新界面?
          在对应的控制器里面提供刷新方法,这样每个控制器都要写,太麻烦
          之前我们抽取了父类,只需要在父类中提供一个刷新界面方法即可,只需要写一次
 
     3.4刷新界面用什么方法?
          reloadData,这个方法不太好,没有下拉刷新的效果
          之前我们在控制器中提供了下拉刷新的方法,调用下拉刷新方法即可
 
     3.5下拉刷新用MJ框架集成的,怎么调用?

     // 开始下拉刷新,触发下拉刷新,调用下拉刷新方法
[self.tableView.mj_header beginRefreshing];
 
     3.6当控制器第一次被加载的时候,也需要刷新的效果,
           我们在viewDidLoad里面手动调用下 下拉刷新就可以了    
 
二.重复点击tabBar按钮加载数据
1.监听按钮点击
     1.1系统的按钮怎么监听点击?
          设置代理,自己成为自己的代理
          当某些方法必须自己成为自己代理才能实现,那就自己成为自己的代理
 
     1.2怎么监听?

 - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
 
2.判断是否点击了同一个TabBar按钮(记录上次点击的按钮(控制器))
     2.1定义属性记录上次选中按钮(控制器)
     2.2让第0个按钮(控制器)成为选中按钮(默认会选中第0个按钮)
 
3.获取当前界面显示的控制器,刷新界面
     3.1 tabBarController不能直接获取主题控制器,怎么办?
     
     3.2 采用通知,重复点击tabBar上按钮发出通知,所有主题控制器接收通知
     
     3.3 在精华和新帖的父控制器(主题控制器)接收通知
          点击子类时,self指向子类,也就是子类接收通知
 
     3.4 当所有的子类控制器都被点击时,在点击TabBar按钮,所有的子控制器都接收通知,都会刷新
 
     3.5 怎么做到,只让一个控制器刷新界面?
          接收通知的主题控制器,只有显示在屏幕(界面)上的控制器才需要刷新
 
     3.6 如何判断控制器是否显示在屏幕(界面)上
          通过window属性,如果控制器的view有window属性,表示当前控制器在窗口上显示,没有就没显示。
 
        // 在屏幕上控制器的view才需要刷新界面
if (self.view.window) {
// 开始下拉刷新,触发下拉刷新,调用下拉刷新方法
[self.tableView.mj_header beginRefreshing];
}
 
三.点击状态栏回到顶部
 
1.UIScrollView有个特性,点击状态栏,会自动回到顶部
 
2.为什么会有这个特性?
     因为 scrollsToTop这个属性, 苹果对这个属性有介绍  (默认为YES)
     介绍:在当前显示的所有view中,如果多个scrollView的 scrollsToTop属性都打开,就没有效果了
               整个屏幕上只能一个scrollView打开scrollsToTop,才有用
 
3.怎么让我们的主题控制器也拥有: 点击状态栏,自动回到顶部?
     只让主题控制器的scrollsToTop = YES 即可
     在精华和新帖的父控制器中,设置collectionView 和 scrollView(标题按钮栏) 的scrollsToTop属性为NO

重复点击主界面(TabBar)按钮刷新界面--点击状态栏回到顶部的更多相关文章

  1. iOS点击状态栏回到顶部底层实现原理

    在iOS开发中,苹果其实已经帮你实现了点击状态栏回到顶部这个功能,但我们在开发中会遇到点击不能回到顶部.其实这都和 ScrollView中的一个属性scrollsToTop有关,我们先看看苹果关于这个 ...

  2. UITableView 或 UIScrollView 点击状态栏列表回到顶部

    整理来自互联网- 这是tableView继承的scrollView的一个属性 scrollsToTop. 官方说明是这样的: // When the user taps the status bar, ...

  3. Angular 2/4/5+ 重复点击菜单刷新界面

    记一下,网上没找到方法 自己搞了好久  通过跳转到别的界面在跳回来的方式进行实现             //再次点击刷新界面       if (this.router.url == item.ur ...

  4. WPF点击不同界面上的按钮实现界面切换

    原文:WPF点击不同界面上的按钮实现界面切换 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_29844879/article/details/ ...

  5. ListView中响应item的点击事件并且刷新界面

    ---恢复内容开始--- 最近在在实现listview功能中遇到了这个问题: 点击事件写在了adapter的item中,不知道如何在listview的点击事件中更新数据的显示: 总结:1.要使用not ...

  6. VC/Wince 实现仿Win8 Metro风格界面3——按钮移动交换、删除、添加快捷方式(附效果图)

    上一篇文章写了如何进行页面滑动切换,今天我讲一下如何实现两个按钮拖动交换位置,包括同一个页面按钮交换或者两个页面之间的按钮交换.另外就是如何拖动删除界面上的快捷方式.按钮交换和拖动删除,这两个功能基本 ...

  7. Dynamics CRM 客户端程序开发:在实体的列表界面添加按钮

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复114或者20140312可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 如果没有安装Ribbon Wor ...

  8. C#子线程刷新界面并关闭窗体

    目的:要循环刷新界面上的控件,同时不影响用户操作.循环结束后关闭窗体. 步骤:先创建一个窗体,窗体中拖入一个lable控件(label1),一个button控件(button1) 代码窗口输入: // ...

  9. easyui中Tab的tools按钮刷新当前tab

    easyui中Tab的tools按钮刷新当前tab 点击刷新按钮,刷新当前Tab选项卡. $('#index_tabs').tabs({ fit : true, border : false, too ...

随机推荐

  1. 怎么样用opencv将彩色图片转化成像素值只有0和255的灰度图?

      分类: OpenCV [Q1]怎么样用opencv将彩色图片转化成像素值只有0和255的灰度图? 进行灰度化,IplImage* pImg = cvLoadImage( "C:\\1.b ...

  2. 【转】java正则表达式

    在Sun的Java JDK 1.40版本中,Java自带了支持正则表达式的包,本文就抛砖引玉地介绍了如何使用java.util.regex包. 可粗略估计一下,除了偶尔用Linux的外,其他Linu ...

  3. 【C】用我所学去讲C语言指针

    很多人不敢讲C的指针,有些人讲不清,有些人怕讲错.初生牛犊不怕虎,就让我讲讲. 下面开始. 一.指针的定义  指针是内存单元的编号.内存单元是以字节为单位的.所以指针就是字节的编号. 比如我们的个人电 ...

  4. Linux中的ps命令

    Linux中ps命令用来列出系统中当前运行的那些进程. 使用格式:ps 参数   如:ps -A 通过man ps可以获得ps的详细参数用法 -A 显示所有进程信息 c 列出程序时,显示每个程序真正的 ...

  5. magento csv导入

  6. LightOj1054 - Efficient Pseudo Code ( 求n的m次方的因子和 )

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1054 题意:给你两个数n和m, 求n^m的所有因子和,结果对1000000007求余; ...

  7. 面向对象世界里转转七(Liskov替换原则)

    前言:Liskov替换原则是关于继承机制的应用原则,是实现开放封闭原则的具体规范,违反了Liskov原则必然意味着违反了开放封闭原则.因此,有必要对面向对象的继承机制及其基本原则做以探索,来进一步了解 ...

  8. Selenium2学习-033-WebUI自动化实战实例-031-页面快照截图应用之二 -- 区域截图

    我在之前的文章中曾给出浏览器显示区域截图的方法,具体请参阅 .或许,有些小主已经想到了,每次都获取整个显示区域的截图存储,那么经过一段时间后,所使用的图片服务器的容量将会受到极大的挑战,尤其是在产品需 ...

  9. Windows7下 配置 Apache + PHP + MySQL + Zend Studio配置

    相关软件下载: Apache                               版本:(httpd-2.2.25) PHP                                   ...

  10. WPF 本周、本月、本季、本年的第一天与最后一天取法

    lblWeekStart.Content = DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOf ...