我遇到了問題。爲什麼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引用控制器,但不引用視圖。 –