我正在使用通知將數據從詳細視圖控制器傳遞到我的應用程序中的rootviewcontroller。該方法工作正常,直到有內存警告。iPhone - 內存警告後發佈兩次通知
通知在任何內存警告後處理兩次。
當用戶在DetailViewController中選擇一行時,我會將數據傳回給rootviewcontroller。 didSelectRowAtIndexPath方法只被調用一次,但通知觀察者被調用兩次!
我應該刪除didReceiveMemoryWarning中的通知嗎?還是有代碼的其他問題?
發佈的相關代碼
RootViewController的的viewDidLoad
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(rowSelected:) name:@"SelectionNotification" object:nil];
DetailViewController的didSelectRowAtIndexPath方法
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSMutableDictionary *dictionary = [[[NSMutableDictionary alloc] init] autorelease];
[dictionary setObject:selectedRow forKey:@"row"];
[[NSNotificationCenter defaultCenter] postNotificationName:kSelectionNotificationName object:self userInfo:dictionary];
[[self navigationController] popToRootViewControllerAnimated:YES];
}
感謝您的幫助。
只是假設您的視圖將被加載和卸載多次並相應地進行編碼。 – 2009-07-01 13:37:43