我想在tableView重新加载它的单元格时重新调用awakeFromNib,重新执行我在那里执行的代码并重新加载一个在单元格内部的pageViewController,这可能吗?
答案 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>