首页 > iOS Objective-C 如何在运行时获取一个对象?

iOS Objective-C 如何在运行时获取一个对象?

比如我有两个view,view1和view2,view2在view1中的一个container里。

当显示viw1时,view2也是同时显示的。

当程序运行到view1时,我如何在view2的view controller中获取view1的对象呢?

实际上我是在view1中有一个操作,需要view2(tableview)来更新数据,所以想要view2做view1的代理,这个时候需要在view2中获取正在运行的view1对象。


  1. 可以给 view 设置 tag,然后需要的时候用 viewWithTag 来查找 - 不推荐这样做,太隐晦, 也容易出错,而且查找效率也不高。

  2. 如果你在 controller 里需要访问某个 view,就应该把它连出来,保存一个引用在 controller 里 - 正常来说的话, 应该这么做。

  3. 根据你的需求,让 view2 做 view1 的代理是不合适的,view 应当只负责显示以及接受用户的操作,操作完成之后需要什么后续的行为,应该是 controller 的责任,或者可以使用 MVVM,view 绑定到 viewModel 上,当用户进行了什么操作之后,更新相应的 viewModel,另外一边的 view 监听到 viewModel 的变化好,做出相应的响应。

【热门文章】
【热门文章】