美文网首页
UIApplication.shared.sendAction使

UIApplication.shared.sendAction使

作者: 售前界的不死小强 | 来源:发表于2017-04-12 09:48 被阅读240次

在阅读IQKeyboardManager看到了UIApplication.shared.sendAction(之前自己项目里并没有用到)。

UIApplication.shared.sendAction大意是分发一个event到另外一个对象去处理。然后我就写了一个demo。用于数据回传。刷新界面的。

项目组成。

ViewController是与Main.Storyboard进行关联的。SecondeVC为继承UIViewController的类。主要就是从ViewController的Button里面跳转到SecondeVC,然后通过SecondeVC的按钮调用UIApplication.shared.sendAction并pop回去。

代码 let sb = UIStoryboard.init(name: "Main", bundle: nil)

let vc = sb.instantiateViewController(withIdentifier: "viewController")

print("ready")

UIApplication.shared.sendAction(#selector(ViewController.showLabel), to: vc, from: self, for: nil)

self.navigationController!.popViewController(animated: true)

ViewController的

@objc func showLabel(){

print("fffffff")

if label != nil {

print("abnfjflskfjls")

label?.text = "数据回传"

}else{

print("i am nil")

}

}

打印显示i am nil。一开始有点懵了。然后自己一看。使用Storyboard取得vc是新的一个界面。

在print("ready")加print(vc.view)。在这里解释一个事情:如果从Storyboard取的VC,无论是自定义的控件还是从Storyboard进行关联。都是在loadView进行绑定的。ViewController的不再打印i am nil。然而label的数据还是不刷新。然后我尝试了使用Protocol(相当于OC的delegate)进行回调和数据刷新,这里不进行详细描述了,界面刷新没问题。这样就排除了界面上布局和刷新的错误。再次思考UIApplication.shared.sendAction(难道不能刷新界面)。这时候想到另外一个方法。

在SecondVC的事件响应中这样取VC代码如下:

let arr :[UIViewController] = (self.navigationController?.viewControllers)! as [UIViewController]

let mtArr:NSMutableArray = NSMutableArray.init(array: arr)

let vc = mtArr.object(at: mtArr.count - 2) as! ViewController。其它都一样,还是使用UIApplication.shared.sendAction(#selector(ViewController.showLabel), to: vc, from: self, for: nil),然而神奇的事情发生了。ViewController的label数据刷新了。

总结一句话使用UIApplication.shared.sendAction进行事件回调刷新,使用NavigationController的栈结构进行VC操作。Protocol的话都是可以的。

相关文章

  • UIApplication.shared.sendAction使

    在阅读IQKeyboardManager看到了UIApplication.shared.sendAction(之前...

  • 借你耳朵使使

    最近,偶然发现有音频类的APP很火,便也下载了一个。这个还真不错:小说、相声、童话故事、古诗词解读……几乎囊括了所...

  • 君子使物,不为物使

    “君子使物,不为物使”是我曾读《菜根谭》中所看到的一句话,当时这句话引起了我的主意,我想起曾经自己深受手机的控制而...

  • 谁借我点脑子使使

    一直以来,我都坚信自己的脑容量太小,脑子从来没够用过,正如天气预报从来没准过一样。 有热心的不服气的网友(俗称轴脾...

  • 君子使物,不为物使

    我愿意深深地扎入生活,吮尽生活的骨髓,过得扎实,简单,把一切不属于生活的内容剔除得干净利落,把生活逼到绝处,用最基...

  • 君子使物,不为物使

    《世说新语》中记载了两则发人深省的小故事: 一则是“阮裕焚车”的故事——阮裕曾有一辆非常好的车子,无论谁来借,他都...

  • 使人快乐使己快乐

    “哎,你发现没有,给别人带来快乐的同时,自己也会获得同样的快乐,甚至是加倍的快乐。” “是吗?” “这还用怀疑吗?...

  • 勾魂使

    我自幽冥深处走过 勾引着世间万物的魂魄 有人享受着人间极乐 有人饱受着艰难困惑 不管如何 我都冷眼旁观 紧盯着灵魂...

  • 阴阳使

    (一)死人 夜幕降临,刚刚栖在树上的乌鸦被一声惊叫惊得飞上天空,几根黑羽轻飘飘掉落在树林下。 天空中,一轮明月冷眼...

  • 冬使

    冥冥落梦三秋去, 冰潭镜影大鹰飞。 往往旋花千里漠, 拂氅开雪送春归。 20161219

网友评论

      本文标题:UIApplication.shared.sendAction使

      本文链接:https://www.haomeiwen.com/subject/bgipattx.html