iPhone Switch查看_KILL!问题

时间:2009-10-30 19:17:51

标签: iphone view switch-statement

我在使用nib文件的2个视图之间切换视图时遇到问题! 我的代码。 我的第一页转到第2页!但在第2页我不能回到第一页!我的应用程序出去了..这是我的代码:

从第1页到第2页:

    #import "HafezViewController.h"
#import "GhazaliateHafez.h"


-(IBAction)gh:(id)sender {
    HafezViewController *ghPage = [[HafezViewController alloc] initWithNibName: @"GhazaliateHafez" bundle:nil];
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:1.3];
    [UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.view cache:YES];
    [self.view addSubview:ghPage.view];
    [UIView commitAnimations];
}

^^^^^^^^^ 这段代码很棒! 但是从第2页到第2页:

#import "GhazaliateHafez.h"
#import "HafezViewController.h"

@implementation GhazaliateHafez


-(IBAction)ghtoIndex:(id)sender {
    HafezViewController *back1 = [[HafezViewController alloc] initWithNibName:@"index" bundle:nil];
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:1.5];
    [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES];
    [self.view addSubview:back1.view];
    [UIView commitAnimations];

}

点击后退按钮后我的应用程序崩溃... 我的问题是什么? 谢谢

2 个答案:

答案 0 :(得分:1)

您正在将view2添加到view1,然后将view1添加回view2。完成View2后,将再次显示简单调用self.view.removeFromSuperview和视图1。

实际上,再看一遍,您似乎可能需要查看presentModalViewController来显示视图2.

答案 1 :(得分:0)

两个可能对你有帮助的想法:

我想你可能想通过乐器运行它。你在泄漏记忆吗?你是在每次点击时分配一个视图,然后缓存它......你是在发布它们吗?

在一个数组中有两个与之分离的视图会更容易,例如,然后索引要激活的视图并将其包装到上面的动画循环中,同时释放并隐藏另一个视图吗?由于释放是垃圾控制的,不太确定如何让其他视图消失,但是我知道有办法实现它。

And this is from a post from earlier that helped me when I was asking how to remove a subview immediately:


  

myGroovySubview.hidden = YES;隐藏视图。您也可以尝试使用[myGroovySubview removeFromSuperview]从超级视图中删除它;

     

如果您从超级视图中删除它,则释放调用应自动将其从内存中删除,因为该调用后引用计数应为零。