我怎么能回想起awakeFromNib

时间:2017-09-14 07:48:38

标签: ios swift uitableview

我想在tableView重新加载它的单元格时重新调用awakeFromNib,重新执行我在那里执行的代码并重新加载一个在单元格内部的pageViewController,这可能吗?

3 个答案:

答案 0 :(得分:1)

我相信在从nib文件初始化对象时会调用awakeFromNib。所以你不能手动调用它。

从nib文件中读取此thread以获取对象加载过程。

答案 1 :(得分:0)

请参阅Apple关于awakeFromNIb方法

的文档
  

在实例化并初始化所有对象之后,   nib加载代码重新建立插座和操作连接   所有这些对象。然后它调用了awakeFromNib方法   对象。

因此,手动调用它看起来不可能。此外,我建议您将awakeFromNib中的代码行放入单独的方法中并调用该方法。它会对你有用。

答案 2 :(得分:0)

正如其他受访者所指出的那样,您不应该自己调用任何“生命周期”方法。但是,没有理由说你为什么不能这样做:

Traceback (most recent call last):
  File "/home/user/PycharmProjects/pythonProj/pythonDesignPatterns/src/comp/mypackage/mainModule.py", line 2, in <module>
    from pythonDesignPatterns.src.comp.mypackage.men import Men, MenItem
  File "/home/user/PycharmProjects/pythonProj/pythonDesignPatterns/src/comp/mypackage/men.py", line 2, in <module>
    from pythonDesignPatterns.src.comp.mypackage.iterator import NullUtil, CompUtil
  File "/home/user/PycharmProjects/pythonProj/pythonDesignPatterns/src/comp/mypackage/util.py", line 2, in <module>
    from pythonDesignPatterns.src.comp.mypackage.men import Men

ImportError: cannot import name 'Men'

然后,您只需随时拨打override func awakeFromNib() { super.awakeFromNib() self.doSetupStuffINeedToRepeat() } func doSetupStuffINeedToRepeat() { //... } 即可。您不应该自己调用doSetupStuffINeedToRepeat()的原因是,如果操作正确,它应该调用awakeFromNib,并且在执行过程中执行此操作可能(将)真的搞砸了...... < / p>