問題:
すべてのビューを nslog でチェックして、ビューが割り当て解除されているかどうかを確認します。
ビューはどのように呼び出され、どのアイテムがそれにプッシュされますか
ビューが呼び出され、テーブルにプッシュされます。detailViewController には、次の searchResult があります。
@property (nonatomic,weak) SearchResult *searchResult;
呼び出される detailViewController は次のとおりです。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
DetailViewController *controller = [[DetailViewController alloc]initWithNibName:@"DetailViewController" bundle:nil];
SearchResult *searchResult = [search.searchResults objectAtIndex:indexPath.row];
controller.searchResult = searchResult;
[self.navigationController pushViewController:controller animated:YES];
//made a property with (nonatomic,weak) DetailViewController and set it to the controller
self.detailViewController = controller;
}
detailViewController はどのように破棄されていますか
-(void)back:(UIButton *)sender{
[self.navigationController popViewControllerAnimated:YES];
}
私が問題だと思うのは
私はちょうど推測しています..私はdetailViewControllerでいくつかのものを割り当てるいくつかの関数を割り当てますが、私が戻った場合、これらのものは自動的に正しく解放されますか? それは保持されているものでなければなりませんが、detailViewController でこれらのプライベート プロパティが次のようなものを持っているのかわかりません。
@property (nonatomic, retain) iCarousel *carousel;
@property (nonatomic, retain) UINavigationItem *navItem;
しかし、私がビューの外に出た場合、どうすればこれらのオブジェクトを解放できますか? それともこれが問題ではないですか?
アップデート:
私が押し戻すとき:
NSLog(@"%@", [self navigationController]);
[self.navigationController popViewControllerAnimated:NO];
NSLog(@"%@", [self navigationController]);
ログ:
2013-01-13 19:33:30.703 App[21683:707] <UINavigationController: 0xfeafbf0>
2013-01-13 19:33:30.705 App[21683:707] (null)
ARCを使用しています