class FirstVIEwController: UIVIEwController { func updateUI {...} }class SecondVIEwController: UIVIEwController { func updateUI {...} }class ThirdVIEwController: UIVIEwController{ func updateallUI {...} # I want call FirstVIEwController().updateUI() and SecondVIEwController().updateUI() here}
但是FirstVIEwController()意味着我创建了一个我不想要的新FirstVIEwController,并且已经创建了FirstVIEwController.那么如何在updateallUI()中调用所有其他控制器的updateUI()
请帮帮忙,谢谢!
解决方法 视图控制器直接通信通常是一种非常糟糕的做法.我会使用NSNotification在视图控制器之间进行通信.通常以通知名称以大写字母开头并以“通知”一词结尾.class FirstVIEwController: UIVIEwController { func updateUI {...} overrIDe func vIEwDIDLoad() { super.vIEwDIDLoad() NSNotificationCenter.defaultCenter().addobserver(self,selector: "updateUI",name:"TimetoUpdateTheUINotificaiton",object: nil) } overrIDe deinit { NSNotificationCenter.defaultCenter().removeObserver(self)}}class SecondVIEwController: UIVIEwController { func updateUI {...} overrIDe func vIEwDIDLoad() { super.vIEwDIDLoad() NSNotificationCenter.defaultCenter().addobserver(self,object: nil) } overrIDe deinit { NSNotificationCenter.defaultCenter().removeObserver(self) }}class ThirdVIEwController: UIVIEwController{ func updateallUI { NSNotificationCenter.defaultCenter().postNotificationname("TimetoUpdateTheUINotificaiton",object: nil) }}总结
以上是内存溢出为你收集整理的ios – 如何在swift中更新其他控制器的UI?全部内容,希望文章能够帮你解决ios – 如何在swift中更新其他控制器的UI?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)