我面临一个奇怪的情况.在我的控制器中,viewDidLoad之前正在呼叫init.这有什么技术原因吗?
ale*_*x-i 53
该viewDidLoad访问方法时,被调用self.view的内部init方法(因为self.view应该没有从过程似乎被固定,因此不会返回零笔尖加载).
Ric*_*mpo 15
我知道这是一个有点老的帖子,但我会在任何地方发表我的观点,因为我认为它可以帮助某人.
好吧,我一直处于同样的境地.我认为viewDidLoad是在我的视图控制器类中的init方法之前调用的.但真正发生的事情并非如此:流程在init方法上启动,但在调用[super init*]时跳转到viewDidLoad,因此viewDidLoad方法中的日志消息首先显示在我的自定义初始化中.
我想就是这样.我希望这能节省一些时间.
[对不起我的英语不好]
我不知道viewController是什么类型的,但是我遇到了类似UITabBarController的情况.我认为它可能有助于另一个面对它与UITabBarController.
据我所知,所有viewControllers在viewDidLoad之前调用init,除了UITabBarController及其子类.
正如Andrew 在这里声称的那样,UITabBarControllers调用loadView inside [super init]方法,这会调用viewDidLoad.因此,在init完成其作业之前将调用viewDidLoad方法.
如果你在viewDidLoad中设置了一些东西,你应该在调用之后在init方法中执行它[super init].
不,viewDidLoad消息总是在init之后调用。
你确定 init 被调用了吗?有几种专门针对 UIViewController 的 init 方法,也许会调用另一种方法,而不是让您有不同的想法。
如果您需要更多信息,请粘贴 viewDidLoad 的代码和所有 init 方法,并告诉我们它是如何加载的(即使用代码)或从 nib 加载。
| 归档时间: |
|
| 查看次数: |
7585 次 |
| 最近记录: |