문제가 있습니다.iOS6이 viewdidload 전에 개인 메소드를 호출하는 이유는 무엇입니까?
컨트롤러를 처음 사용할 때 initwithnib:bundle:
메서드를 사용한 다음이 컨트롤러가 메모리에로드되었다고 생각합니다. 그래서 나는 그 메소드를 selectUnreadMessage
이라고 부르며 그 헤더를 변경합니다. 그러나 selectUnreadMessage
이후에 viewdidload
이 호출 된 것을 발견했습니다.
왜 저에게 말할 수 있습니까? 감사.
- (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로 사용한 컨트롤러 이후에 호출됩니다.
자신보다 더 잘 설명 할 수있는 경우가 아니면 말입니다. 그러나 뷰는 뷰에 대한 첫 번째 참조에서 만들어 짐을 명심하십시오. selectUnreadMessage가 뷰를 참조하면 뷰가로드됩니다. –
하지만 initwithnib : bundle : 메서드를 호출 할 때 컨트롤러에 대한 참조를 올바르게 처리 했습니까? –
initWithNib는 컨트롤러를 참조하지만 뷰는 참조하지 않습니다. –