
比如有第 1 个页面 ViewControllerA 和第 2 个页面 ViewControllerB 。 当从第 1 个页面向第 2 个页面传值时可以使用 Property 的方法,但是当从第 2 个页面向第 1 个页面传值时可以使用同样的 Property 方法吗?
1 timelessg 2016 年 10 月 5 日 via Android delegate & block & target-action |
2 LINAICAI 2016 年 10 月 6 日 可以啊,但这样就必须传递一个引用的 vc 给第二个 vc 了,然后在 vc 的生命周期的某个时刻传递回来,但更好的方法就是用 block 和 delegate ,这样 vc 之间耦合降到最低,还能更好的处理相互引用的问题,如果用属性来传递,很容易相互之间的控制器一不小心就相互引用而得不到释放,而 block 和 delegate 就是用副本对象和弱引用来处理的。 |
3 kitalphaj 2016 年 10 月 6 日 再加一个 notification ,如果你需要支持多 publisher 多 subscriber 的话 |
4 iyeatse 2016 年 10 月 6 日 via iPhone unwind segue |
5 zongren 2016 年 10 月 6 日 via Android 不可以啊,就用 delegate 和 block |
6 z0z OP @timelessg 多谢啊, delegate 的方法刚会使用, block 和 target-action 正在开始学习。 @LINAICAI 我靠啊,你这几句话解决了困扰我好几天的疑问,虽然还不能完全看懂,但是恍惚能理解一点,我再研究研究。之前我使用 Property 做完 forward 的传数据之后,又如法炮制的加了一些代码企图使用 Property 实现 backward 的传数据,但是编译的时候就没有通过,提示我在 ViewControllerA 中 interface 中定义的那个变量需要使用__weak 来修饰来着,我一看就蒙了,这个技能没听说过啊。 多谢了啊。 @kitalphaj 你说的这个我得收藏了,对我来说看起来像是高级的应用,等我掌握了基本应用后再去了解,谢谢啊。 @iyeatse 之前搜到了这个关键字,但是当时没有仔细看,既然你推荐了,回头我也得仔细的看看,多谢啦。 @zongren 是啊,我现在只会用 delegate 来 backward 的传输数据,昨晚上刚刚开始了解 block ,当时只是不知道为什么不能使用 Property 来做 backward 的传数据。 |
7 coolmenu 2016 年 10 月 6 日 weak 是弱引用,防止两个 vc 相互引用而不能销毁。 |
8 hstdt 2016 年 10 月 6 日 via iPhone 建议搜索 ios 传值方式,那种专门的汇总博文会好些。入门就一个个学着用,用多了才知道在什么时候用什么方式传最好。 |
9 timelessg 2016 年 10 月 6 日 via Android 建议找个完整项目找找感觉, oc 可以看 coding , swift 可以看 yep 。 |
10 xi_lin 2016 年 10 月 6 日 via iPhone block 注意循环引用 |
11 z0z OP 你上的都是好人。 |
12 xjbeta 2016 年 10 月 6 日 我习惯用 notification 数量多的话 试试 rxswift 之类的(想试试但还没试过) |