我来这里寻求帮助,因为我正在完成我的 iphone 项目,我希望它是完美的!
我在分配和释放.UIViewcontroller
让我解释 :
我有一个UITableview
自定义单元格。在每个自定义单元格中,将分配一个新的按钮UIViewController
:ListOfAGuestFriendViewController;
因此,我创建了一个委托,它调用一个方法来进行“翻转转换”,并显示我的新 ListOfAGuestFriendViewController 视图。
我的问题是,我的 ALL 都遇到了同样的问题,ListOfAGuestFriendViewControlleraddSubiew
永远不会被释放,或者在视图加载后被释放!
有人可以准确地解释我如何制作完美的addSubview 吗?
这是我的代码:
当我翻转视图时:
-(void)flipAView
{
Guest *currentSelectedGuest = [self createAGuestUsingIndexPath:self.selectedIndex];
ListOfAGuestFriendViewController *listOfAGuestFriendViewController = [[ListOfAGuestFriendViewController alloc]init];
[listOfAGuestFriendViewController setCurrentGuestSelected:currentSelectedGuest];
[listOfAGuestFriendViewController setMyListOfContactControllerDelegate:self];
[UIView animateWithDuration:0.25 animations:^{
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight
forView:self.tableviewContainerView cache:YES];
[self.tableviewContainerView addSubview:listOfAGuestFriendViewController.view];
}completion:^(BOOL finished){
[listOfAGuestFriendViewController release];
[self collapseCurrentExpandedCell];
}];
}
当我想回去时:
-(IBAction)goBackButtonGotPressed:(id)sender{
[UIView animateWithDuration:0.5 animations:^{
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft
forView:[self.view superview] cache:YES];
[self.view removeFromSuperview];
}];
}
如果我删除那行代码:
[listOfAGuestFriendViewController release];
我的listOfAGuestFriendViewController
永远不会解除分配。
我不为此实例使用属性,但是当我这样做时,它是一样的!