我遇到了问题。为什么iOS6在viewdidload之前调用私有方法?
当我初始化控制器时,我使用initwithnib:bundle:
方法,然后我认为这个控制器已经加载到内存中。所以我打电话给它的方法selectUnreadMessage
来改变它的头。但我发现viewdidload
是在selectUnreadMessage
之后调用的。
有人可以告诉我为什么?谢谢。
- (void)selectUnreadSegmentedHeaderButton {
if ([YDNetworkingManager sharedNetworkingManager].badgeNumbers.count) {
for (NSNumber *unreadMessagesCount in [YDNetworkingManager sharedNetworkingManager].badgeNumbers) {
if (unreadMessagesCount.intValue > 0) {
NSInteger index = [[YDNetworkingManager sharedNetworkingManager].badgeNumbers indexOfObject:unreadMessagesCount];
self.segmentedHeader.selectedIndex = index;
[self loadTableViewAtIndex:index];
break;
}
}
}
}
我的私人方法的代码在上面。该控制器具有用于在不同类型的消息之间切换的属性SegmentedHeader。
该方法被称为在使用此方法作为addSubView的Controller之后;
除非你能解释自己比这更好。但请记住,视图是在第一次引用它时创建的。如果selectUnreadMessage引用视图,则会导致它加载。 –
但是当我调用initwithnib:bundle:方法时,我引用了Controller的权利? –
initWithNib引用控制器,但不引用视图。 –